5

我有一个表格,其中包含以下格式的行:

transactionDate, purchaseOrderId
8/8/2012, 55
8/9/2012, 55
8/8/2012, 88
8/9/2012, 55
8/10/2012, 77

我想找到 transactionDate 和 purchaseOrderId 都准确的所有行。所以以下两行是重复的:

8/9/2012, 55
8/9/2012, 55

我尝试使用以下查询:

SELECT
    transactionDate, purchaseOrderId
FROM
    purchases
GROUP BY
    transactionDate, purchaseOrderId
HAVING COUNT(*) > 1;

然而,除了 8 月 9 日的结果外,它还返回了 8 月 8 日的结果。如何让它只返回两列都重复的字段(而不是返回每个日期的所有交易)?

谢谢。

4

2 回答 2

12
SELECT 
    transactionDate, purchaseOrderId, COUNT(*) CNT 
FROM 
    purchases 
GROUP BY 
    transactionDate, purchaseOrderId 
HAVING 
    CNT > 1
ORDER BY 
    CNT ASC;
于 2012-08-24T18:34:06.390 回答
0

将您的 transactionDate 列更改为“日期”数据类型并以正确的日期格式插入值,即(“YYYY-MM-DD”)。将值插入为:

    INSERT into purchases values ('2012-08-09', 55);

然后使用您自己的上述书面查询。它会给你你想要的结果。

于 2012-08-24T19:15:12.930 回答