我知道您可以删除一列来隐藏它,但是聚合或函数呢?
SELECT MIN([date])AS FIRSTDAY,lastName,firstName,birthdate,gender
FROM [Day] d
GROUP BY lastName,firstName,birthdate,gender
我知道您可以删除一列来隐藏它,但是聚合或函数呢?
SELECT MIN([date])AS FIRSTDAY,lastName,firstName,birthdate,gender
FROM [Day] d
GROUP BY lastName,firstName,birthdate,gender
带有子查询!
SELECT x.LastName,
x.firstName,
x.birthdate,
x.gender
FROM (SELECT MIN([date])AS FIRSTDAY,lastName,firstName,birthdate,gender
FROM [Day] d
GROUP BY lastName,firstName,birthdate,gender) AS x
使用 CTE。添加更多逻辑要容易得多,例如ORDER BY
或WHERE
WITH MinDate AS
(
SELECT MIN([date])AS FIRSTDAY, lastName,firstName,birthdate,gender
FROM [Day]
GROUP BY lastName,firstName,birthdate,gender
)
SELECT lastName,firstName,birthdate,gender
FROM MinDate
-- WHERE
-- ORDER BY
如果您只想按姓氏、名字、出生日期、性别删除重复项,请在日期不是重复值时使用子查询。这样,您可以将重复删除逻辑与表示分离。
SELECT D1.lastName, D1.firstName, D1.birthdate, D1.gender, -- More fields
FROM [Day] D1
WHERE D1.date = (
SELECT MIN(D2.date) AS MinDate
FROM D2
WHERE CHECKSUM(D1.lastName, D1.firstName, D1.birthdate, D1.gender)
= CHECKSUM(D2.lastName, D2.firstName, D2.birthdate, D2.gender)
)
这是你的选择。