我的select语句返回一些行,如下所示:
a| b| c| d|
1, 2, 5, 1
1, 5, 7, 1
2, 5, 4, 1
2, 5, 2, 2
3, 5, 9, 1
我需要做的是,如果后续行中的col a和col b匹配,它们表示相同的对象,需要为行添加c并作为单行返回。它下一行不匹配需要返回。我不确定我需要列d,它只是从不同的选择生成。
查询的结果看起来像
a| b| c| d
1, 2, 5, 1
1, 5, 7, 1
2, 5, 6, 1 // the combination of rows 3 & 4
3, 5, 9, 1
抱歉,我认为太像程序员了。如果有人能给我一个开始的地方,我将非常感激。
答案 0 :(得分:1)
select a, b, sum(c) as c from XXX group by a, b
程序员在开始学习SQL时必须做的转变是不要在程序上考虑数据集,而不是逐行迭代数据。你作为一套操作它。这可能是一个艰难的转变。
有关汇总的信息:
这是非常基本的SQL,我建议通过一些教程或HackerRank来熟悉这些语言。
答案 1 :(得分:0)
if(empty($user_logout->is_loggedin())) { $user_logout->redirect('login.html'); }
使用Group By
和SUM
功能。
PostgreSQL 9.6架构设置:
MIN
查询1 :
CREATE TABLE t
(a int, b int, c int, d int)
;
INSERT INTO t
(a, b, c, d)
VALUES
(1, 2, 5, 1),
(1, 5, 7, 1),
(2, 5, 4, 1),
(2, 5, 2, 2),
(3, 5, 9, 1)
;
<强> Results 强>:
SELECT a
,b
,SUM(c) AS c
,MIN(d) AS d
FROM t
GROUP BY a
,b
ORDER BY a