簡體   English   中英

SQL查詢幫助需要在表中加入和計數

[英]SQL query help needed joining and counting within a table

這是我加入的第二篇文章。 現在我希望有一張表,其中包含男性和女性的總數...

我有一個名為babynames的表,看起來像這樣:

firstname |sex |year |count 
Bob |M| 2010| 150
Bob |M| 2009| 100
Bob |M| 2008| 122
Bob |F| 2007| 2
Bob |F| 2001| 1

通過此查詢,我已經能夠計算所有男性和女性的嬰兒名字

SELECT 
  firstname, sum(count), sex
FROM babynames
GROUP BY firstname
HAVING COUNT(DISTINCT sex) = 2

結果表:

bob|375|M 

這接近我想要的......但是

SELECT 
  firstname, sum(count), sex
FROM babynames GROUP BY firstname, sex

給我結果:

bob|372|M
bob|3|F

現在,我需要充分利用兩個世界,以便我的桌子只有性別匹配的名稱,理想情況如下:

firstname|male count| female count
bob |372|3

雖然我承認我需要一些SQL練習,但我很感激幫助將這個查詢拉到一起。 謝謝!!

SELECT  firstname,
        SUM(CASE WHEN sex = 'm' THEN count END) MaleCount,
        SUM(CASE WHEN sex = 'f' THEN count END) FemaleCount
FROM    babynames 
GROUP   BY firstname

嘗試這樣的事情:

select firstname, sum(malecount) males, sum(femalecount) females
from 
(select 'boys' gender
,firstname
, 0 femalecount
, count(*)  malecount
from babynames
where sex = 'male'
group by 'boys, firstname, 0
union
similar query for girls
) temp
group by firstname

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM