2014-11-21 35 views
0

我在查詢形成中遇到問題,需要您的輸入。情景如下:查詢形成中的問題

我有三種顏色的藍色,黃色和紅色的T恤衫。每個學生只能綁定一件顏色的T恤。你能幫我找出班級中每種顏色的T恤數量嗎(2/3/4)是指班級2/3/4。

在DB我們studentId,階級和stShirtColor(B/Y/R)

在此先感謝

+1

確定其簡單。告訴我們你現在擁有什麼,我們會嘗試糾正它? – SMA 2014-11-21 07:02:26

+0

我知道CASE將在這裏使用,但沒有做任何事情,因爲我不知道如何使用增量在sql – Prashant 2014-11-21 07:09:02

+0

好吧,會有許多類似的問題,所以嘗試搜索和定製它,如果需要。如果你仍然沒有得到它,在這裏發佈。 – SMA 2014-11-21 07:13:02

回答

0

你可以通過下面的查詢打印T恤,其計的顏色爲每個類,

SELECT class, stShirtColor, count(*) as NUMBER_OF_TSHIRST FROM YOUR_TABLE WHERE class IN (2,3,4) group by class, stShirtColor; 

分組依據將組織您的數據基於類。使用GROUP BY時,您可以使用大多數aggregate functions

+0

這可以在MySQL中運行,但不能在ms sql server或oracle中運行。同樣,它應該是'class by class,stShirtColor',因爲OP要'每班顏色的T恤數量(2/3/4)' – 2014-11-21 07:24:36

+1

除了MySQL之外,每個DBMS都會拒絕這條語句。 – 2014-11-21 07:26:51

+0

是的。我只寫了MYSQL的查詢。 – 2014-11-21 08:10:52

0

這是你在找什麼:

SELECT class, 
     stShirtColor, 
     Count(*) AS NumberOfTshirts 
FROM yourtable 
WHERE class IN(2, 3, 4) 
GROUP BY class,stShirtColor 

where條款將過濾出來的結果,因爲你需要什麼,group by將使class,stShirtColor組合的組,並最終COUNT(*)會給你算這樣的組。