在我的表 hms_bbr_group
中,因为列 group_id
有多个副本,我试图让查询选择每个 id
的最高值 group_id
,因此与众不同
表格:
例如,我希望我的查询仅显示 id 61
,group_id 36
,in group_name Infection Control
不考虑其他 ID,因为我只想要最高值
我的 SQL 选择:
SELECT DISTINCT ON (hbg.group_id)
MAX(hbg.id) AS id,hbg.group_id,hbg.group_name,hbg.group_description,hbg.group_type_id,hbgt.group_type_name,hbg.category_id,hbg.effective_start_datetime,hbg.created_by,hbg.created_datetime,hbg.archived_by,hbg.archived_datetime
FROM
hms_bbr_group hbg
LEFT JOIN
hms_bbr_group_type hbgt ON (hbg.group_type_id = hbgt.group_type_id)
GROUP BY
hbg.group_id,hbg.archived_datetime
ORDER BY
hbg.group_id ASC;
这里重要的几行是
DISTINCT ON (hbg.group_id)
MAX(hbg.id) AS id
我的问题是输出显示的是最低的 id 值:
SQL 查询:
正如您从第一个屏幕截图中看到的,不是在 id 61
(最高)上获得 group_id 36
,而是获得 id 36
(最低)
为了测试它,我尝试用 MIN 替换 MAX,但输出仍然相同。
为什么我的 SQL 没有显示 MAX id 值?