很抱歉这个奇怪的问题标题,但不确定如何以简洁的方式真正描述这个问题。
我们的一个客户希望我编写一个查询,从他们的数据库中消除重复记录。如果我们有这样的样本数据集:
╔══════╦════════╦════════╦═══════════════╗
║ Code ║ Amount ║ Client ║ Type ║
╠══════╬════════╬════════╬═══════════════╣
║ 'a' ║ 950 ║ 'Lisa' ║ 'Available' ║
║ 'b' ║ 550 ║ 'Bob' ║ 'Unavailable' ║
║ 'b' ║ 500 ║ 'Bob' ║ 'Available' ║
║ 'c' ║ 500 ║ 'Dave' ║ 'Available' ║
║ 'c' ║ 500 ║ 'Dave' ║ 'Unavailable' ║
╚══════╩════════╩════════╩═══════════════╝
它们没有每个记录的唯一标识符(不幸的是)。“代码”指的是一个实体,但它可能有多个记录。例如,我想要SELECT Code, Amount, Client, Type
“GROUP BY
代码”,然后选择具有MIN(Amount)
.
我可以使用 GROUP BY 提取代码和 Min(Amount),但我无法为这些特定记录选择所有列。