mysql - 创建列和行 mysql

标签 mysql sql arrays

我有这样的表格数据

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/

相关文章:

mysql - 模拟 row_number() 的此 mysql 查询的 MSSQL 等效项

mysql - 如何使用 RAND(seed) 对 MySQL 中的行进行采样?

java - 声明私有(private) String 数组并初始化数组元素会出现错误

java - 为什么我的方法返回一个空值数组?

Javascript 对象属性与数组值

php - 在 DB、半尺寸和全尺寸中搜索尺寸

mysql - 有没有办法按组更新 MySQL v5.5 表的行号?

mysql - 如何避免在更新重复键时自动递增?

mysql - 根据条件从不同的表中选择

php - 一列中有多个外键?