如何在mysql中动态地将行转换为列
我们正在尝试将行转换为列,以便按行计数显示 给定一个调查详细信息表,如下所示 给定一个车辆类别表,如下所示 如何将行转换为列以获得计数 我想得到的结果是 我们已尝试在此表上联接,但无法将行转换为列标题如何在mysql中动态地将行转换为列,mysql,inner-join,Mysql,Inner Join,我们正在尝试将行转换为列,以便按行计数显示 给定一个调查详细信息表,如下所示 给定一个车辆类别表,如下所示 如何将行转换为列以获得计数 我想得到的结果是 我们已尝试在此表上联接,但无法将行转换为列标题 select s.date,s.vehicle_id,v.category_name,count(s.vehicle_id) as vehicle_count from survey_details s inner join vehicle_category v on s.vehicle_i
select s.date,s.vehicle_id,v.category_name,count(s.vehicle_id) as vehicle_count from survey_details s inner join vehicle_category v on s.vehicle_id=v.vehicle_id group by s.vehicle_id;
试试这个:
SELECT C.Period,
SUM(C.Bike) Bike,
SUM(C.Car) Car,
SUM(C.Truck) Truck,
SUM(C.Total) Total
FROM
(SELECT
DATE_FORMAT(A.`date`,'%d/%m/%Y') Period,
SUM(if(B.category_name='Bike',1,0)) Bike,
SUM(if(B.category_name='Car',1,0)) Car,
SUM(if(B.category_name='Truck',1,0)) Truck,
COUNT(*) Total
FROM survey_details A JOIN vehicle_category B
ON A.vehicle_id=B.vehicle_id
GROUP BY DATE_FORMAT(A.`date`,'%d/%m/%Y'), B.category_name) C
GROUP BY C.PERIOD;
<>参见在应用程序代码中认真考虑数据显示的处理问题的可能副本