2014-11-21 33 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(*)会给你算这样的组。