SQL 按不同的一列显示所有列

SQL Show All column by one column distinct

我有一个 table 有重复项的 ...
我需要显示没有重复项目的所有列的列表
例如我有这个 table:

ID        CODE        RANK     TIME
1         12345        2       10:00
2         12345        2       11:00
3         98765        3       20:00
4         98765        3       22:00
5         66666        2       10:00
6         55555        5       11:00


结果,我需要:

ID         CODE       RANK     TIME
1         12345        2       10:00
3         98765        3       20:00
5         66666        2       10:00
6         55555        5       11:00


时间栏不重要,只显示其中一个最...

我认为您正在寻找 DISTINCT 子句;

SELECT DISTINCT
  column_1,
  column_2
FROM
  tbl_name;

试试这个:

SELECT * FROM myTable WHERE ID IN(SELECT MIN(ID) FROM myTable GROUP BY Code)

如果没有特定的 ID 显示方式(就像时间列一样),并且 ID 和 TIME 列始终以这种方式排序,这应该可行。

SELECT MIN(id), code, rank, MIN(time) FROM table GROUP BY code, rank

所以您只需要 CODE 在 table 中不重复的行。

SELECT "CODE"
FROM table1
GROUP BY "CODE"
HAVING COUNT(*) = 1

这将 return 不同的 CODE-s。基于它们 - 因为它们是独一无二的 - 您可以自行加入它以获取整行:

SELECT * 
FROM table1 
WHERE "CODE" IN (
    SELECT "CODE"
    FROM table1
    GROUP BY "CODE"
   HAVING COUNT(*) = 1
)