我有一张emp_id, income
等表格。
我希望得到像
这样的查询的记录数select * from table_name where income <= 500;
将至少有3个这样的收入群体 - 这将在报告生成时间给出。
此外,我希望获得所有3个计数 - 并将结果按其各自收入组的计数进行分组 - 所有这一切都在一个查询中。
最简单的方法是什么?
答案 0 :(得分:0)
你可以试试这个吗,如果这不适合你的需要你可能需要编写一个自定义存储过程
SELECT
sum((income <= 500)) as range1,
sum((income <= 1000)) as range2
FROM table_name
答案 1 :(得分:0)
您可以使用CASE表达式创建类别,然后使用GROUP BY来汇总类别。
SELECT COUNT(*) AS num,
CASE WHEN income IS NULL THEN 'missing'
WHEN income <= 0 THEN '0'
WHEN income <= 500 THEN '1 - 500'
WHEN income <= 1000 THEN '501-1000'
ELSE '> 1000'
END AS category
FROM table_name
GROUP BY category WITH ROLLUP
包含WITH ROLLUP子句将为您提供总体计数以及每个类别的计数。