2015-01-09 44 views
0

請注意:NO JOIN請。sql將多個查詢合併爲一個?

比方說,我得到了一個表user,字段名稱gendergender值可以是0,1,-1

我想知道那裏的數量值分別。 我知道的是使用三個SQL查詢如下。

select count(1) from user where gender=0 
select count(1) from user where gender=1 
select count(1) from user where gender=-1 

問題:如何將上述內容合併爲一個查詢? btw,我是SQL的新手。

+0

你打算給你的問題添加其他的東西嗎? –

回答

1
select gender, count(*) 
from user 
group by gender 
+0

忍者,我正要寫信使用'GROUP BY'。 – Shahar

0

GROUP BY最有可能爲您提供最好的服務。但是,您唯一的限制是「不加入」。這將允許(除GROUP BY)爲

SELECT 
    (SELECT COUNT(1) FROM User WHERE gender = 0) AS genderNought 
    , (SELECT COUNT(1) FROM User WHERE gender = 1) AS genderOne 
    , (SELECT COUNT(1) FROM User WHERE gender = -1) AS genderMinusOne; 

SELECT COUNT(1) AS hits, gender, 'genderNought' AS genderInWords FROM User WHERE gender = 0 UNION ALL 
SELECT COUNT(1), gender, 'genderOne' FROM User WHERE gender = 1 UNION ALL 
SELECT COUNT(1), gender, 'genderMinusOne' FROM User WHERE gender = -1; 

一方爲好。

參見SQL Fiddle

+0

「GROUP BY最有可能爲您提供最好的服務,但您要求提供」不加入「。」 - 什麼時候GROUP BY被視爲加入? –

+0

永遠不要在這裏 - 但我提供的兩個選項(至少對我來說)是「不加入」。因此,我認爲,把它們指出來是可以的......將會重新... – Abecee