我有一张表myTable
id | test_id_1 | test_id_2
001 | 0 | 1
001 | 1 | 0
002 | 1 | 0
002 | 0 | 1
003 | 1 | 0
003 | 0 | 1
我尝试根据id
对行进行分组,以便我可以获得id
这样的单行
id | test_id_1 | test_id_2
001 | 1 | 1
002 | 1 | 1
003 | 1 | 1
这是我的查询
SELECT *
FROM myTable
GROUP BY id
我一直收到错误消息,指出test_id_1不在GROUP BY
中。但是,如果我确实包括它,我就不会得到我正在寻找的桌子。
答案 0 :(得分:3)
试试这个(我假设你需要的是test_id_1和test_id_2的总和):
SELECT id, SUM(TEST_ID_1), SUM(TEST_ID_2)
FROM myTable
GROUP BY id
group by语法要求您聚合“group by”子句中未列出的所有列,这就是您收到错误的原因。通过说到聚合,您可以使用SUM,COUNT,MAX或MIN函数。
答案 1 :(得分:0)
您还可以获得相同的输出,同时为每个id-wise组获取test_id_1和test_id_2的最大值。所以你也可以尝试下面的查询
SELECT id, MAX(TEST_ID_1), MAX(TEST_ID_2)
FROM myTable
GROUP BY id