sql - 如何从表中选择*并按单列分组
问题描述
我想从几个表中选择 * 但消除重复而不写出所有列名。组合表中大约有 30 列,我不想把每一列都写出来。
我知道我可以写出所有列名,但我想看看是否有办法使用 select *
SELECT
a.*
FROM "T1"."T2"."T3" a
LEFT JOIN "T1"."T2"."T4" b on b.id = a.id
LEFT JOIN "T1"."T2"."T5" c on c.id = a.id
LEFT JOIN "T1"."T2"."T6" d on d.id = a.id
WHERE a.org = '123' AND kind = 'abc'
有没有办法按 a.id 分组而不必写出每个列名?最终表中有 41 列,我试图只返回 id 上的不同行。
解决方案
不完全是group by
,但是row_number()
:
SELECT a.*
FROM (SELECT a.*,
ROW_NUMBER() OVER (PARTITION BY a.id ORDER BY a.id) as seqnum
FROM "T1"."T2"."T3" a LEFT JOIN
"T1"."T2"."T4" b
ON b.id = a.id LEFT JOIN
"T1"."T2"."T5" c
ON c.id = a.id LEFT JOIN
"T1"."T2"."T6" d
ON d.id = a.id
WHERE a.org = '123' AND kind = 'abc'
) a
WHERE seqnum = 1;
推荐阅读
- ubuntu-18.04 - 带有 Ubuntu 18.04 的 MSI GS75 -- 一些 fn 键不起作用(仅音量/亮度起作用)
- kubernetes - Microk8s 上的 Weavescope 无法识别容器
- php - PHP中的JSON字符串到UTF8
- node.js - 通过应用授予对 s3 私有存储桶中用户特定图像的访问权限
- readxl - as.Date() 函数不起作用,我的字符仍然是字符
- python - 在 Python 中使用 MATLAB 回归
- r - 相关矩阵问题
- spring-boot - Elasticsearch 在启动期间抛出错误
- python - 使pycharm在Windows 7 32位中工作的任何解决方案
- java - 无法解决 gradle 中的融合 kafka 依赖项?