Mysql
 sql >> база данни >  >> RDS >> Mysql

Връщане на заявка в редов формат вместо в колона

Можете да опитате по-долу заявка -

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;

Демо.




  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) и кога не? (Свързване на изображение с елемент в базата данни)

  2. Премахване на MySQL 5.7 напълно

  3. MySQL използва имена на колони от друга таблица

  4. Използване на sqlalchemy за заявка с помощта на множество колони където в клауза

  5. Въпрос за задействане на MySQL:задейства се само при промяна на колона?