2013-10-01 28 views
0

我有emp_id, income表等計數和GROUP BY在選擇查詢結果記錄數設置

我希望得到的記錄數爲查詢像

select * from table_name where income <= 500; 

會有在至少3個這樣的收入羣體 - 將在報告生成時給出。

此外,我希望獲得所有3個計數 - 並將結果按各自收入組的計數分組 - 所有這些都在一個查詢中。

這樣做最簡單的方法是什麼?

+0

你的小組是什麼?爲什麼不從't GROUP BY {some_condition}'選擇COUNT(1)'? –

+0

查看案例...當...當...結束 – Strawberry

+0

向我們提供樣品 – 7alhashmi

回答

0

你可以試試這個,如果這個不適合你的需要,你可能需要編寫一個自定義存儲過程

SELECT 
sum((income <= 500)) as range1, 
sum((income <= 1000)) as range2 
FROM table_name 

sample fiddle

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子句會給你一個總數以及每個類別的計數。