我有以下表格的片段:

 邮票|组|值
 123 | 1 | 4
 124 | 2 | 5
 124 | 2 | 6
 125 | 4 | 7
 125 | 4 | 8
 125 | 5 | 9


我似乎找不到能给我这个结果的查询:

 邮票| value1 |值2
 124 | 5 | 6
 125 | 7 | 8
 125 | 9 |空值


因此,基本上,所有带有相同戳记的结果都按“组”分组显示。
这可能吗 ?我尝试使用子查询,“分组依据”和“具有”语句来完成此操作,但是我似乎找不到正确的查询。

提前thnx!

最佳答案

select stamp,
       SUBSTR(`values`,1,INSTR(`values`,',')-1) as value1,
       NULLIF(TRIM(',' FROM SUBSTR(`values`,INSTR(`values`,',')+1)),'') as value2,
       `values`
FROM
(
SELECT stamp, `group`,CONCAT( GROUP_CONCAT(`value`) ,',') AS `values`
FROM stamps
GROUP BY stamp, `group`
) aggr


Fiddle Demo

仅当每个组仅具有

关于mysql - MySQL显示分组结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25776684/

10-16 18:58