我目前想SELECT
的DISTINCT FirstNames
在GROUP
,使用Microsoft Access 2010
我的表的簡化相關列如下:MS-SQL訪問DISTINCT GROUP BY
+----+-------------+-----------+
| ID | GroupNumber | FirstName |
+----+-------------+-----------+
| 1 | 1 | Peter |
| 2 | 1 | Bob |
| 3 | 1 | Peter |
| 4 | 2 | Rosemary |
| 5 | 2 | Jamie |
| 6 | 3 | Peter |
+----+-------------+-----------+
我實際的表包含我想要應用此過程(單獨)的兩列,但我應該可以簡單地重複另一列的過程。列組編號是一個簡化,我的表實際上將所有行在10天的時間間隔在一起,但我已經解決了這個問題。
而且我想它返回此:
+-------------+------------+
| GroupNumber | FirstNames |
+-------------+------------+
| 1 | Peter |
| 1 | Bob |
| 2 | Rosemary |
| 2 | Jamie |
| 3 | Peter |
+-------------+------------+
這意味着,我要爲每個組所有不同FirstNames。
常規DISTINCT
會忽略組邊界,只提到Peter一次。所有集合函數都會將我的輸出減少爲只有一個值,或根本不適用於字符串。訪問也不支持SELECT
不是聚合的列或GROUP BY
語句。
我發現的所有其他答案要麼是聚合,不適用於MS Access,要麼通過以不適用於我的情況的方式解決數據問題來解決。 (標準化的語言是一個很好的事情,不是嗎?)
我現在的(無效)查詢看起來是這樣的:
SELECT GroupNumber,
DISTINCT FirstNames -- This is illegal, distinct applies to all
-- columns and doesn't respect groups.
FROM Example AS b
-- Complicated stuff to make the groups
GROUP BY GroupNumber;
這個查詢是一次性的事情,並用於分析58000行excel從另一個數據庫導出的電子表格(不是我的錯),因此無需爲運行時進行優化。
我想完全通過SQL,如果可能的話不使用VBA。
只要使用'SELECT DISTINCT GroupNumber,FirstNames' – Lamak
但是,這將返回groupNumber:1,2, 3和FirstNames:Peter,Bob,Rosemary,Jamie,Peter –
不,不會。你試過了嗎? – Lamak