我有这样的表数据
index user date rank
11 a 1Mar 23
12 b 1Mar 16
13 a 2Mar 24
14 b 2Mar 18
我想通过查询实现以下内容:
1Mar 2Mar
a 23 24
b 16 18
我不知道这是否可以通过命令行中的单个语句来完成,或者是否必须通过表单和一些脚本来完成。通过脚本可以做到,但看不到如何在单个语句中完成。
最佳答案
如果您知道日期的所有可能值,则可以像下面这样进行数据透视
或者您需要使用动态sql。
SELECT user,
MAX( CASE WHEN date ='1Mar' THEN rank else NULL end) AS '1Mar',
MAX( CASE WHEN date ='2Mar' THEN rank else NULL end) AS '2Mar'
FROM Table1
GROUP BY user
关于mysql - 创建MySQL的列和行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26458207/