我希望转换Table1
中的数据,就像在Pivot_table中的数据的第一张图片上看到的那样。我想计算等级字段中有多少个值。有可能在MySQL中使用日期类型吗?我可以以某种方式使用动态命名的别名,例如你可以看到它低AS NOW()
?
Table1:
PK Date Subject Grade
----------------------------------------------------
1 2013-09-11 10:37:45 History A
2 2013-09-11 10:37:45 Math B
3 2013-09-11 10:37:45 Math A
4 2013-09-11 10:37:45 Biology D
5 2013-10-11 10:37:45 History B
6 2013-10-11 10:37:45 History A
7 2013-10-11 10:37:45 Math A
8 2013-10-11 10:37:45 Geography C
9 2013-10-11 10:37:45 Geography A
10 2013-10-11 10:37:45 Geography C
Pivot_table:
Subject 11-09-2013 11-10-2013
--------------------------------------
Math 2 1
History 1 2
Biology 1
Geography 3
I tried something like this:
SELECT subject,
COUNT(CASE WHEN date = CURRENT_DATE() THEN grade END) AS NOW(),
COUNT(CASE WHEN date = DATE_ADD(NOW(), INTERVAL -1 DAY) THEN grade END) AS '11-09-2013',
COUNT(CASE WHEN date = DATE_ADD(NOW(), INTERVAL -1 MONTH) AS '11-10-2013'
FROM table1
GROUP BY subject
感谢您的帮助
答案 0 :(得分:0)
我不认为动态别名是可能的。您可以在应用中生成别名。