mysql行转列

我需要根据一条select语句查询出来的结果,将其转换:

  1、查询sql
 
SELECT d.status,COUNT(*) AS counts FROM t_personal_data d WHERE d.project_id='8a8300e25fc3c0d1015fc8da35fb0003' AND d.viewable IS TRUE GROUP BY d.status;
  

2、行转列语句:
SELECT
  t.project_id,
  MAX(CASE t.statu WHEN 'finish' THEN counts ELSE 0 END ) finish,
  MAX(CASE t.statu WHEN 'running' THEN counts ELSE 0 END ) running,
  MAX(CASE t.statu WHEN 'wait' THEN counts ELSE 0 END ) waits
FROM (
SELECT d.project_id,d.status AS statu,COUNT(*) AS counts FROM t_personal_data d 
WHERE d.project_id='8a8300e25fc3c0d1015fc8da35fb0003' AND d.viewable IS TRUE GROUP BY d.status
) t;

猜你喜欢

转载自wangxiangyang.iteye.com/blog/2408237