SQL DISTINCT 优化:使用 GROUP BY 限制查重字段
SQL DISTINCT 优化:使用 GROUP BY 限制查重字段
在使用 SELECT DISTINCT 语句进行查询时,如果只希望对特定字段进行查重,可以利用 GROUP BY 子句来实现。
原始 SQL 语句:
SELECT DISTINCT
tbl_punchrecord.FRegNo,
tbl_punchrecord.FDate,
tbl_baseinfo.FEmpName,
tbl_baseinfo.FDept,
tbl_punchrecord.FPunchCode,
tbl_punch.FName,
tbl_punchrecord.FLocation
FROM
tbl_punchrecord,
tbl_baseinfo,
tbl_punch
WHERE
tbl_punchrecord.FPunchCode= tbl_punch.FCode
AND tbl_punchrecord.FRegNo= tbl_baseinfo.FRegNo
AND FDate BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY
FDate ASC,
FRegNo ASC
优化后的 SQL 语句:
SELECT
tbl_punchrecord.FRegNo,
tbl_punchrecord.FDate,
tbl_baseinfo.FEmpName,
tbl_baseinfo.FDept,
tbl_punchrecord.FPunchCode,
tbl_punch.FName,
tbl_punchrecord.FLocation
FROM
tbl_punchrecord,
tbl_baseinfo,
tbl_punch
WHERE
tbl_punchrecord.FPunchCode = tbl_punch.FCode
AND tbl_punchrecord.FRegNo = tbl_baseinfo.FRegNo
AND FDate BETWEEN '2023-08-01' AND '2023-08-31'
GROUP BY
tbl_punchrecord.FRegNo,
tbl_punchrecord.FDate
ORDER BY
tbl_punchrecord.FDate ASC,
tbl_punchrecord.FRegNo ASC
说明:
- 使用
GROUP BY tbl_punchrecord.FRegNo, tbl_punchrecord.FDate将结果集分组,只对FRegNo和FDate字段进行查重。 - 其他字段仍然保留在
SELECT语句中,但实际取值取决于分组后的结果。
通过使用 GROUP BY 子句,可以有效地提高查询效率,并更精准地控制查重范围。
原文地址: https://www.cveoy.top/t/topic/hbV0 著作权归作者所有。请勿转载和采集!