我有下表
+----+----------+------+
|D_ID|date |value |
+----+----------+------+
|0 |1992-02-01|119940|
+----+----------+------+
|1 |1992-02-01|119941|
+----+----------+------+
|1 |1992-02-02|119942|
+----+----------+------+
|2 |1992-02-01|119943|
+----+----------+------+
|0 |1992-02-02|119944|
+----+----------+------+
|0 |1992-02-03|119945|
+----+----------+------+
|2 |1992-02-02|119946|
+----+----------+------+
|1 |1992-02-04|119947|
+----+----------+------+
|1 |1992-02-05|119948|
+----+----------+------+
|2 |1992-02-02|119949|
+----+----------+------+
|2 |1992-02-03|119940|
+----+----------+------+
|0 |1992-02-04|119940|
+----+----------+------+
有什么办法可以得到下面的结果吗?我想获取每天的D_ID值。
+----------+------+------+------+
|date |D_ID_0|D_ID_1|D_ID_2|
+----------+------+------+------+
|1992-02-01|119940|119941|119943|
+----------+------+------+------+
|1992-02-02|119944|119942|119949|
+----------+------+------+------+
|1992-02-03|119945| |119940|
+----------+------+------+------+
|1992-02-04|119940|119947| |
+----------+------+------+------+
|1992-02-05| |119948| |
+----------+------+------+------+
最佳答案
希望这有帮助!
甲骨文:
SELECT date ,
MAX(DECODE(D_ID,0,value,NULL)) as D_ID_0,
MAX(DECODE(D_ID,1,value,NULL)) as D_ID_1,
MAX(DECODE(D_ID,2,value,NULL)) as D_ID_2
FROM
your_table
GROUP BY date ;
MySQL:
SELECT date ,
MAX(IF(D_ID=0,value,NULL)) as `D_ID_0`,
MAX(IF(D_ID=1,value,NULL)) as `D_ID_1`,
MAX(IF(D_ID=2,value,NULL)) as `D_ID_2`
FROM
your_table
GROUP BY date ;
或者
SELECT date ,
MAX((CASE WHEN (d_id = 0) THEN value ELSE NULL end)) AS `D_ID_0`,
MAX((CASE WHEN (d_id = 1) THEN value ELSE NULL end)) AS `D_ID_1`,
MAX((CASE WHEN (d_id = 2) THEN value ELSE NULL end)) AS `D_ID_2`
FROM
your_table
GROUP BY date ;
关于jquery - 如何编写这个查询以获得正确的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21144286/