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 将结果集分组,只对 FRegNoFDate 字段进行查重。
  • 其他字段仍然保留在 SELECT 语句中,但实际取值取决于分组后的结果。

通过使用 GROUP BY 子句,可以有效地提高查询效率,并更精准地控制查重范围。

SQL DISTINCT 优化:使用 GROUP BY 限制查重字段

原文地址: https://www.cveoy.top/t/topic/hbV0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录