我可以在查询中使用case语句,而仅在group by()中使用吗?

时间:2018-09-04 19:27:12

标签: mysql sql database select group-by

我只能在Group by()中使用案例语句吗?

例如,我需要将计算结果按incom级分组。

user_id   income
1          10
2          20
3          100
4          500

我想得到结果:

 number_of_users  income
  1               <10
  2               10 - 150
  1               >150

我可以在查询中使用case语句,而仅在group by()中使用吗?

2 个答案:

答案 0 :(得分:2)

您可以使用CASE

SELECT CASE WHEN income < 10 THEN '<10'
              WHEN income <= 150 THEN '10-150'
              ELSE '> 150'
         END AS income, COUNT(*) AS num_of_users
FROM tab
GROUP BY CASE WHEN income < 10 THEN '<10'
              WHEN income <= 150 THEN '10-150'
              ELSE '> 150'
         END

答案 1 :(得分:0)

@Lukasz答案的修改版本。

argparse

使用派生表

  • 保存一些输入内容
  • 避免由选择列表和group by子句中的不同大小写表达式引起的愚蠢错误
  • 符合ANSI SQL。
相关问题