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
)
我有一个 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
)