1

テーブルLDSからすべての個別の値をカウントする必要があります。status = 'ok' AND date >= '2012-01-01'また、同一のIDが複数ある場合は、最新の日付のIDのみをチェックします。このIDのステータスが「ok」の場合は、カウントします。

テーブルLDS:

ID | ステータス| 日にち
1 | わかりました| 2012-01-01
2 | 悪い| 2012-01-01
1 | 悪い| 2012-02-02
3 | わかりました| 2012-01-01
4 | わかりました| 1999-01-01

結果は「1」(ID 3)になります

4

1 に答える 1

3

個別のIDをカウントする必要があるため、重複の場合はどのIDがカウントされるかは問題ではないと想定しています。これは、最終的なカウントには影響しないためです。

編集:後続のステータスIDを持つものを除外するようにクエリを更新しました:'bad'

SELECT COUNT(DISTINCT lds1.ID)
FROM 
    LDS lds1
    LEFT JOIN LDS lds2
        ON lds1.ID = lds2.ID
        AND lds1.Date < lds2.Date
        AND lds2.Status = 'bad'
WHERE 
    lds1.Date > '2012-01-01'
    AND lds1.Status = 'ok'
    AND lds2.ID IS NUL
于 2012-04-06T16:20:16.670 に答える