我正在 Mysql 中编写一个 SQL 查询,结果应该按 ID 和日期分组。日期是动态确定的,可以是简单的日期时间字段,也可以是年月或年周的组合。请参阅下面的查询以了解一年中的一周;
SELECT t.transactionId, t.transactionDate, t.transactionProcessDate,
t.status, t.type, t.versionId, t.note, WEEKOFYEAR(t.transactionDate) as CW,
YEAR(t.transactionDate) as yr, (DATE_FORMAT(t.transactionDate, '%Y-%u')) as tDate
FROM transaction t
WHERE (t.status = 'A' or t.status = 'N')
GROUP BY t.transactionId , tDate
我遇到的问题是尝试按 tDate 分组,
GROUP BY t.transactionId , tDate
它返回具有相同日期的重复项。
当我将查询更改为按 CW 和 yr 字段分组时,
GROUP BY t.transactionId , CW, yr
我得到了预期的结果,没有重复。
问题:按生成的字段分组是否存在问题DATE_FORMAT
,可能导致返回的查询无法识别重复项?
我想从查询中完全排除 CW 和 yr 这两个字段,因为它们仅用于分组。