【发布时间】:2013-08-27 03:07:25
【问题描述】:
首先,描述一下我的数据集。我正在使用 SNOMED CT 代码并尝试从中列出可用的列表。相关列是 rowId、conceptID 和 Description。 rowId 是唯一的,其他两个不是。我想从这些代码中选择一个非常具体的子集:
SELECT *
FROM SnomedCode
WHERE LENGTH(Description)=MIN(LENGTH(Description))
GROUP BY conceptID
结果应该是包含 400,000 个唯一概念 ID(共 140 万个)的列表以及每个代码的最短适用描述。上面的查询显然格式不正确(并且只会返回 LENGTH(description)=1 的行,因为表中最短的描述是 1 个字符长。)我错过了什么?
【问题讨论】:
-
SQL Group By and min (MySQL) 的可能重复项
-
您需要一个相关的子查询来计算 每个
conceptID的最小值。另一个注意事项:尽管 mySQL 允许在 SELECT 字段中包含既不是grouped by也不是aggregated的字段,但就这些字段而言,此类查询的结果是不可预测的。所以不要将SELECT *与GROUP BY一起使用。
标签: mysql sql group-by subquery min