我认为从我拥有的表格开始,我想要的结果是最简单的。count rows where date is equal but but name by
Name | Date
A | 03/01/2012
A | 03/01/2012
B | 02/01/2012
A | 02/01/2012
B | 02/01/2012
A | 02/01/2012
B | 01/01/2012
B | 01/01/2012
A | 01/01/2012
我想我的查询结果是:
Name | 01/01/2012 | 02/01/2012 | 03/01/2012
A | 1 | 2 | 2
B | 2 | 2 | 0
所以基本上我想算具有相同日期的行数,但对于每一个人的名字。所以一个由日期组成的简单群组将不会执行,因为它会将这些名称合并在一起。然后我想输出一个表格,显示使用php的每个日期的计数。
我已经看到了答案建议是这样的:
SELECT
NAME,
SUM(CASE WHEN GRADE = 1 THEN 1 ELSE 0 END) AS GRADE1,
SUM(CASE WHEN GRADE = 2 THEN 1 ELSE 0 END) AS GRADE2,
SUM(CASE WHEN GRADE = 3 THEN 1 ELSE 0 END) AS GRADE3
FROM Rodzaj
GROUP BY NAME
所以我想会有一个办法,我调整这一点,但我不知道是否有另一种方式,或者是最有效的? 我也许在想,如果while循环每次只输出一个特定的名字和日期,那么第一个结果就是A,01/01/2012,1,1下一个A,02/01/2012 ,2 - A,03/01/2012,3 - B,01/01/2012,2等等,那么也许这将是可行的通过一种不同的技术,但不知道如果这样的事情是可能的,如果它是有效的。
所以我基本上看看是否有人有任何想法,这是有点超出这个盒子,他们将如何比较。
我希望我解释得很好,并提前感谢您的帮助。
SAME PROBLEM ---------------- >> http://stackoverflow.com/questions/14805851/mysql -sum-column-values-based-on-the-the-the-table – Smoke 2014-06-16 09:18:50