📜  如何只为 sql tablecolumn 的每个唯一值选择第一行? - SQL (1)

📅  最后修改于: 2023-12-03 14:52:11.327000             🧑  作者: Mango

如何只为 SQL table column 的每个唯一值选择第一行?

当我们需要仅选择表格中重复项的唯一值时,通常需要选择每个唯一值的第一行。这可以通过以下 SQL 查询实现:

SELECT DISTINCT t1.column_name1, t1.column_name2, ... t1.column_nameN
FROM table_name t1
INNER JOIN (
    SELECT column_name1, MIN(column_name2) AS min_column_name2
    FROM table_name
    GROUP BY column_name1
) t2 ON t1.column_name1 = t2.column_name1 AND t1.column_name2 = t2.min_column_name2
  • 首先,我们使用 DISTINCT 选择表格中唯一的列值。
  • 然后,我们将表格与一个子查询结合使用,该子查询将每个唯一值的最小值与其相关联,并将这些值用于连接表格中的行。
  • 最后,我们选择我们需要的列。您可以在 SELECT 语句中列出所有列名称,或使用 * 选择所有列。

请注意,使用这种方法时,应该非常小心以确保您需要选择的行确实包含表格中唯一的每个列值的第一个出现。如果您需要选择其他行,则应通过更改子查询的聚合函数和 GROUP BY 子句来修改查询,以便从中选择其他行。但是,请注意,这种情况可能会产生意外的结果,并且可能会增加查询的复杂性。

参考链接: