Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?

Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?

Patricia Arquette
Patricia Arquetteasal
2024-12-28 12:35:36263semak imbas

How to Group SQL Data by Month and Year and Format the Output as

Pengumpulan SQL Mengikut Bulan dan Tahun

Dalam SQL, mengumpulkan data mengikut bulan dan tahun ialah tugas biasa apabila menganalisis data temporal. Untuk mencapai matlamat ini, anda boleh menggunakan fungsi MONTH() dan YEAR() bersama-sama klausa GROUP BY.

Pernyataan Masalah

Seorang pengguna menghadapi masalah semasa membuat pertanyaan jadual Pesanan untuk memaparkan lajur 'tarikh' sebagai "bulan-tahun" (cth., "9-2011"). Mereka telah menggunakan pertanyaan berikut:

SELECT MONTH(date) + '.' + YEAR(date) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY MONTH(date), YEAR(date)

Walau bagaimanapun, pertanyaan ini hanya memaparkan bulan (mis., "9") dan pengguna mahu memasukkan kedua-dua bulan dan tahun dalam output.

Penyelesaian

Untuk menyelesaikan isu ini, anda boleh menggunakan fungsi CAST() untuk menukar bulan dan tahun nilai ke dalam rentetan dan menggabungkannya dengan tanda sempang di antaranya. Berikut ialah pertanyaan yang dikemas kini:

SELECT CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4)) AS Mjesec, SUM(marketingExpense) AS SumaMarketing, SUM(revenue) AS SumaZarada 
FROM [Order]
WHERE (idCustomer = 1) AND (date BETWEEN '2001-11-3' AND '2011-11-3')
GROUP BY CAST(MONTH(date) AS VARCHAR(2)) + '-' + CAST(YEAR(date) AS VARCHAR(4))

Pertanyaan ini akan mengembalikan lajur 'tarikh' dalam format yang diingini, memaparkan kedua-dua bulan dan tahun.

Pilihan lain ialah menggunakan sifar pendahuluan semasa menghantar ke memastikan pemformatan yang konsisten. Ini boleh dicapai menggunakan fungsi right():

GROUP BY 
  CAST(YEAR(date) AS VARCHAR(4)) + '-' + right('00' + CAST(MONTH(date) AS VARCHAR(2)), 2) 

Pendekatan ini akan menambah sifar pendahuluan kepada nilai bulan satu digit, menghasilkan pemformatan seragam (mis., "09-2011").

Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan Data SQL mengikut Bulan dan Tahun dan Format Output sebagai 'Bulan-Tahun'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn