mysql - 如何按具有空值的表进行分组

标签 mysql sql postgresql group-by

我有包含行的表格:

Id, Name, Age, Field1, Field2
-----------------------------
1, 'Person_1', 23, NULL, 5
2, 'Person_1', 23, 3, NULL
3, 'Person_2, 25, 7, NULL

我想将其分组以获得如下结果:

'Person_1', 23, 3, 5
'Person_2, 25, 7, NULL

我尝试进行子查询并选择 Field1 和 Field2,但它总是获取 field1 和 field2 的单人第一行

最佳答案

使用GROUP BY:

SELECT Name, MAX(Age), MAX(Field1), MAX(Field2)
FROM mytable
GROUP BY Name

MAX 如果全部,聚合函数将返回NULL,例如Field2,值为NULL,否则将忽略NULL并返回字段的最大值。

Demo here

关于mysql - 如何按具有空值的表进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31188960/

相关文章:

sql - Postgresql计算计算总数的平均值

java - Hibernate import.sql 与 PostgreSQL 重复主键

mysql - 转换mySQL表中的日期格式并按日期对结果进行排序

mysql - 创建mysql函数时语法错误

mysql - 连接 3 个表,其中 1 个表行成为列

mysql - 40秒奇怪的sql性能谜题

php - 使用 MySQL 和 PHP 返回单个值

mysql - 在mysql中查找用户名、数据库名和版本?

java - 更新表的特定字段,而不考虑hibernate中的其他字段

postgresql - 使用 DataGrip 从 CSV 导入时预配置列类型