我有一个这样的数据块:
RW | PK A B C D
============================
1 | 1 aa 123 x 99
2 | 2 aa 234 v 98
3 | 3 bb 321 z 11
4 | 4 bb 210 w 91
5 | 5 cc 456 y 55
我怎样才能抓住每组的第一个项目(由 A 列标识),像这样?
RW | A B C D
=======================
1 | aa 123 x 99
2 | bb 321 z 11
3 | cc 456 y 55
我可以GROUP BY
或使用DISTINCT
,但这对于我正在查看的内容非常低效,而运行直接列表所需的时间不到 100 毫秒。由于相关值可能不同,因此上述两个选项也可能在 A 列中产生不止一次的项目实例。
换句话说,
SELECT MYTABLE.A, MYTABLE.D, MYTABLE.D, MYTABLE.D
FROM MYTABLE
非常快(不到一秒),而
SELECT MYTABLE.A, MYTABLE.D, MYTABLE.D, MYTABLE.D
FROM MYTABLE
GROUP BY MYTABLE.A, MYTABLE.D, MYTABLE.D, MYTABLE.D
和
SELECT DISTINCT MYTABLE.A, MYTABLE.D, MYTABLE.D, MYTABLE.D
FROM MYTABLE
需要更长的时间(几分钟,但我没有让它完成)。
我不需要聚合函数(COUNT
,SUM
等),只需要一个列表,每个项目一次。A 列中每个值的出现次数各不相同,所以我不能只抓取每个x行。
为什么我不直接运行列表并使用 Excel 或类似的东西进行排序?我正在查看要返回的几百万条记录,但我无法使用我熟悉的任何软件处理这么多记录。