我有一个关于Access的问题。例如,我有一个包含以下数据的表:
NAME | ADDRESS
John Taylor | 33 Dundas Ave.
John Taylor | 55 Shane Ave.
John Taylor | 786 Edward St.
Ted Charles | 785 Bloor St.
Ted Charles | 90 New York Ave.
我希望每个人都能获得一条记录,无论地址如何。例如:
NAME | ADDRESS
John Taylor | 33 Dundas Ave.
Ted Charles | 90 New York Ave.
这可以仅通过查询完成吗? 我尝试使用DISTINCT,但是当我选择两个列时,组合总是唯一的,所以我得到了所有的行。
谢谢!
答案 0 :(得分:4)
如果您不关心要显示的地址,则应遵循以下规则:
SELECT NAME,
MIN(ADDRESS) AS ADDRESS
FROM THETABLE
GROUP BY NAME
答案 1 :(得分:0)
稍微多一点,使用MIN将按字母顺序返回第一个地址。 Access有两个类似的聚合函数,称为FIRST和LAST,它们将根据表的排序顺序返回第一个或最后一个地址。
例如,如果你采取
ID | NAME |地址
1 |约翰泰勒| 55 Shane Ave.
2 |约翰泰勒| 786 Edward St.
3 |约翰泰勒| 33 Dundas Ave.
4 |特德查尔斯| 785 Bloor St.
5 |特德查尔斯|纽约大道90号
SELECT NAME,
MIN(ADDRESS) AS ADDRESS
FROM THETABLE
GROUP BY NAME
将返回
约翰泰勒| 33 Dundas Ave.
特德查尔斯| 785 Bloor St.
SELECT NAME,
FIRST(ADDRESS) AS ADDRESS
FROM THETABLE
GROUP BY NAME
会给你
约翰泰勒| 55 Shane Ave.
特德查尔斯| 785纽约大道
HTH
本