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

Trả lại truy vấn trong một định dạng khôn ngoan hàng thay vì cột

Bạn có thể thử truy vấn bên dưới -

with X as (
  select 
    l.*,
    (select status_from from logs where logs.refno = l.refno and logs.logtime >= '2021-10-02' order by logs.logtime limit 1) logstat
  from listings l
  where l.added_date between '2021-10-01 00:00:00' and '2021-10-02 00:00:00'      -- Start and end date range.
)
, Y as (select X.*, ifnull(X.logstat, X.status) stat20211001 from X)
SELECT 
  added_date,
  COUNT(CASE WHEN status.text = 'Publish' THEN Y.id END) AS Publish,
  COUNT(CASE WHEN status.text = 'Action' THEN Y.id END) AS Action,
  COUNT(CASE WHEN status.text = 'Let' THEN Y.id END) AS Let,
  COUNT(CASE WHEN status.text = 'Sold' THEN Y.id END) AS Sold,
  COUNT(CASE WHEN status.text = 'Draft' THEN Y.id END) AS Draft
from status
join Y on Y.stat20211001 = status.code
group by added_date;

Bản trình diễn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ tối thiểu về việc sử dụng select ... để cập nhật để cô lập các hàng

  2. Độ dài tối đa của tên bảng trong MySQL

  3. Máy chủ 'xxx.xx.xxx.xxx' không được phép kết nối với máy chủ MySQL này

  4. JavaScript có thể kết nối với MySQL không?

  5. pha cài đặt mysql, lỗi khi cố gắng dừng máy chủ