我有emp_id, income
表等計數和GROUP BY在選擇查詢結果記錄數設置
我希望得到的記錄數爲查詢像
select * from table_name where income <= 500;
會有在至少3個這樣的收入羣體 - 將在報告生成時給出。
此外,我希望獲得所有3個計數 - 並將結果按各自收入組的計數分組 - 所有這些都在一個查詢中。
這樣做最簡單的方法是什麼?
我有emp_id, income
表等計數和GROUP BY在選擇查詢結果記錄數設置
我希望得到的記錄數爲查詢像
select * from table_name where income <= 500;
會有在至少3個這樣的收入羣體 - 將在報告生成時給出。
此外,我希望獲得所有3個計數 - 並將結果按各自收入組的計數分組 - 所有這些都在一個查詢中。
這樣做最簡單的方法是什麼?
你可以試試這個,如果這個不適合你的需要,你可能需要編寫一個自定義存儲過程
SELECT
sum((income <= 500)) as range1,
sum((income <= 1000)) as range2
FROM table_name
您可以使用一個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子句會給你一個總數以及每個類別的計數。
你的小組是什麼?爲什麼不從't GROUP BY {some_condition}'選擇COUNT(1)'? –
查看案例...當...當...結束 – Strawberry
向我們提供樣品 – 7alhashmi