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の両方が正確であるすべての行を検索したいと思います。したがって、次の2つの行は重複しています。

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列を'date'データ型に変更し、値を適切な日付形式('YYYY-MM-DD')で挿入します。次のように値を挿入します。

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

次に、上記の独自のクエリを使用します。それはあなたが望むようにあなたに結果を与えるでしょう。

于 2012-08-24T19:15:12.930 に答える