我有一张像这样的桌子;
id1 id2
1 1
2 1
1 2
3 2
1 3
4 3
1 4
5 4
我想以GROUP
为行id2
的方式选择它,但仍保留表中相应行的id1
值
所以我得到一个像这样的结果集;
id1 id1 id2
1 2 1
1 3 2
1 4 3
1 5 4
我从未在高级数据库查询方面做过一半 - 我将如何实现这一目标?
答案 0 :(得分:2)
如果id1
的每个不同值都有2行(id2
的2个值),则可以使用:
SELECT MIN(id1) AS id1_a
, MAX(id1) AS id1_b
, id2
FROM tableX
GROUP BY id2 ;
答案 1 :(得分:1)
您可以尝试使用
SELECT id2, GROUP_CONCAT(id1) FROM your_table
GROUP BY id2
这样,对于每个id2值,您可以使用逗号分隔所有id1值的列 看看GROUP_CONCAT syntax。
答案 2 :(得分:1)
这可能不是完美的解决方案,但在您的情况下,它应该工作。这是我使用过的技巧。
选择id1,(sum(id1) - id1)为nID1,id2来自table_name group by id2
希望它有效。 Ujjwal