Tabel database saya berisi nilai dengan cara ini GAMBAR UNTUK DATA TABEL

Saya ingin melacak email yang sama yang telah digunakan lebih dari satu kali untuk bulan dan tahun tertentu. Dalam skenario di atas, email yang telah diulang beberapa kali adalah sandeshphuya@gmail.com, jes@gmail.com dan ramu@gmail.com untuk bulan yang berbeda. Saya ingin melacak pengulangan pelanggan mengikuti email mereka untuk setiap bulan dan tahun.

Kueri yang saya gunakan saat ini adalah

SELECT DATE_FORMAT(booked_on, '%Y-%m') as monthYear, email,
COUNT(*) AS 'Count'
FROM 'tablename'
GROUP BY email,DATE_FORMAT(booked_on, '%Y-%m') HAVING COUNT(*) > 1 ORDER BY `booked_on`;

GROUP BY email digunakan karena menghasilkan email berulang dan GROUP BY DATE_FORMAT(booked_on, '%Y'-%m') digunakan untuk melacak total email berulang untuk setiap bulan/tahun.

Ini mencetak data sebagai

GAMBAR UNTUK PERTANYAAN PILIH

Bagaimana saya bisa melacak total email berulang pada bulan dan tahun berikutnya? Hasil yang diharapkan adalah

HASIL YANG DIHARAPKAN

-1
sandesh phuyal 6 Maret 2020, 22:27

1 menjawab

Jawaban Terbaik

Anda dapat menggunakan kueri Anda sebagai subkueri untuk grup baru dengan:

select sub.monthYear,count(*)
from
    (SELECT DATE_FORMAT(booked_on, '%Y-%m') as monthYear, 
            email,
            COUNT(*) AS 'Count'
     FROM 'tablename'
     GROUP BY email,DATE_FORMAT(booked_on, '%Y-%m') 
              HAVING COUNT(*) > 1 
     ORDER BY `booked_on`) as sub
GROUP BY sub.monthYear
2
nacho 6 Maret 2020, 19:45