SQL SELECT GROUP BY并加入具有特定值的行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL SELECT GROUP BY并加入具有特定值的行相关的知识,希望对你有一定的参考价值。
我有两张桌子:
tbl_car
id_c | name car
1 | VW
2 | Audi
3 | Ferrari
tbl_auto_accessorize
id_a | id_c | fuel | gpl | abs
1 | 1 | 0 | 1 | 0
2 | 1 | 1 | 0 | 1
3 | 2 | 0 | 1 | 1
4 | 2 | 1 | 0 | 1
5 | 3 | 0 | 1 | 0
我有这个SQL:
SELECT id_a,id_c,abs
FROM tbl_car LEFT JOIN
tbl_auto_accessorize
ON tbl_accessorize.id_c = tbl_auto.id_c
GROUP BY id_c
列abs中的返回值为0,因为第一行为0但是相同的id_c
具有另一行1.我需要一个等于1的结果,因为至少有一个是同一辆汽车的1。
结果:
id_c | abs
1 | 1
2 | 1
3 | 0
答案
我想你可能想要max()
:
SELECT c.id_c, MAX(aa.abs)
FROM tbl_car c LEFT JOIN
tbl_auto_accessorize aa
ON aa.id_c = c.id_c
GROUP BY c.id_c;
通常,聚合查询中的所有列都应该位于GROUP BY
中,或者是聚合函数的参数。这就是我删除id_a
的原因。
以上是关于SQL SELECT GROUP BY并加入具有特定值的行的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:是不是可以将 GROUP-BY 的结果加入到两个 SELECT 中?
T-SQL GROUP BY 也使用 JOIN、聚合和外部引用错误
遇到错误sql_mode = only_full_group_by,所以如何获得所需的结果