SELECT
a.e_id,
coalesce(attempts, 0) attempts,
coalesce(successes, 0) successes,
coalesce(failures, 0) failures
FROM
(
SELECT e_id, count(*) as attempts FROM e_table
WHERE e_comment LIKE '%attempt%' AND e_date BETWEEN '23-MAY-2016' AND '26-MAY-2016'
GROUP BY e_id
) a
full outer join
(
SELECT e_id, count(*) as successes FROM e_table
WHERE e_comment LIKE '%success%' AND e_date BETWEEN '23-MAY-2016' AND '26-MAY-2016'
GROUP BY e_id
) s
on s.e_id = a.e_id
full outer join
(
SELECT e_id, count(*) as failures FROM e_table
WHERE e_comment LIKE '%failure%' AND e_date BETWEEN '23-MAY-2016' AND '26-MAY-2016'
GROUP BY e_id
) f
on f.e_id = coalesce(a.e_id, s.e_id)
WHERE
coalesce(attempts, 0) <> coalesce(successes, 0) + coalesce(failures, 0)
Saya mengubah ke gabungan luar penuh sehingga Anda dapat memverifikasi bahwa tidak ada keberhasilan dan/atau kegagalan tanpa upaya pencocokan. Ini akan memungkinkan Anda menemukan e_id
s di mana ada sesuatu yang salah dalam logging. Seharusnya lebih mudah untuk mulai berurusan dengan angka yang lebih baik dan bukan hanya daftar nilai id.
Yang lain telah menunjukkan potensi untuk beberapa upaya pada id yang sama tetapi apakah mungkin bahwa keberhasilan dan kegagalan keduanya dapat direkam dengan cara yang sama seperti yang dikatakan dalam beberapa jenis skenario coba lagi? Kami tidak tahu seperti apa komentar lengkapnya. Sebagai penjelasan yang mungkin, apakah satu komentar dapat berisi lebih dari satu kata "usaha", "berhasil", "gagal"?
Ini hal lain yang perlu dipertimbangkan: Apakah Anda yakin bahwa semua peristiwa sukses dan gagal Anda akan jatuh dalam jendela tanggal yang sama? Dengan kata lain, apakah ada penundaan setelah percobaan? Mungkin tidak akan terlalu lama jika ini terjadi sekitar tengah malam. Anda mungkin ingin memperluas rentang keberhasilan dan kegagalan cukup untuk mengimbangi ini (dan ubah ke gabungan luar kiri.)
Catatan: Kondisi di where
klausa telah dimodifikasi untuk memungkinkan beberapa upaya (seperti yang tercantum dalam komentar) dan sekarang hanya mencari keseimbangan dalam jumlah upaya vs. keberhasilan dan kegagalan.