Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách nhóm theo năm và tháng trong MySQL

Truy vấn này sẽ đếm tất cả các hàng và cũng sẽ chỉ đếm các hàng có Attribute không rỗng, nhóm theo năm và tháng thành các hàng:

SELECT
  Year(`date`),
  Month(`date`),
  Count(*) As Total_Rows,
  Count(`Attribute`) As Rows_With_Attribute
FROM your_table
GROUP BY Year(`date`), Month(`date`)

(điều này vì Count (*) đếm tất cả các hàng, Count (Attibute) đếm tất cả các hàng có Thuộc tính không rỗng)

Nếu bạn cần bảng của mình trong PIVOT, bạn có thể sử dụng bảng này để chỉ đếm các hàng có Thuộc tính không rỗng:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then `Attribute` end) As Jan,
  Count(case when month(`date`)=2 then `Attribute` end) As Feb,
  Count(case when month(`date`)=3 then `Attribute` end) As Mar,
  ...
FROM your_table
GROUP BY Year(`date`)

Và điều này để đếm tất cả các hàng:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then id end) As Jan,
  Count(case when month(`date`)=2 then id end) As Feb,
  Count(case when month(`date`)=3 then id end) As Mar,
  ...
FROM your_table
GROUP BY Year(`date`)

(hoặc, thay vì đếm id, bạn có thể sử dụng Sum(Month( ngày )=1) như trong câu trả lời của kander). Tất nhiên, bạn có thể kết hợp cả hai truy vấn vào điều này:

SELECT
  Year(`date`),
  Count(case when month(`date`)=1 then id end) As Jan_Tot,
  Count(case when month(`date`)=1 then `Attribute` end) As Jan_Attr,
  Count(case when month(`date`)=2 then id end) As Feb_Tot,
  Count(case when month(`date`)=2 then `Attribute` end) As Feb_Attr,
  Count(case when month(`date`)=3 then id end) As Mar_Tot,
  Count(case when month(`date`)=3 then `Attribute` end) As Mar_Attr,
  ...
FROM your_table
GROUP BY Year(`date`)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL GROUP BY không hoạt động khi di chuyển sang SQL Server 2012

  2. Cách cài đặt MySQL Workbench trên Ubuntu

  3. Làm cách nào để so sánh hai bảng có cùng cấu trúc và tìm các bản ghi chưa khớp với mySQL?

  4. MySQL - Cách hiển thị giá trị hàng dưới dạng tên cột bằng concat và group_concat

  5. cách tốt nhất để lưu trữ url trong mysql cho một ứng dụng chuyên sâu về đọc và ghi