任何人都可以帮助我从mySQL表创建比较矩阵。
我有下表。
MRP | Brand | USAGE
10 | ABC | 200 MB
10 | XYZ | 300 MB
20 | ABC | 500 MB
30 | XYZ | 600 MB
我想要一个给出以下结果的查询。
MRP | ABC | XYZ
10 | 200 MB | 300 MB
20 | 500 MB |-----------
30 | -----------| 600 MB
我能用PHP实现吗? 谢谢和问候。
答案 0 :(得分:1)
尝试,
SELECT MRP,
MAX(CASE WHEN BRAND = 'ABC' THEN `USAGE` ELSE NULL END) 'ABC',
MAX(CASE WHEN BRAND = 'XYZ' THEN `USAGE` ELSE NULL END) 'XYZ'
FROM tableName
GROUP BY MRP
答案 1 :(得分:1)
您需要所谓的数据透视表。
类似的东西:
SELECT MRP,
MAX(IF(Brand='ABC', USAGE,0)) as 'ABC',
MAX(IF(Brand='XYZ', USAGE,0)) as 'XYZ'
FROM table
GROUP BY MRP;
有关详细信息,请参阅此文章: http://www.artfulsoftware.com/infotree/queries.php#78
答案 2 :(得分:1)
尝试GROUP_CONCAT
函数,使用CASE
语句实现此功能,如下所示:
SELECT MRP
,GROUP_CONCAT(CASE Brand WHEN 'ABC' THEN `USAGE` ELSE NULL END) AS ABC
,GROUP_CONCAT(CASE Brand WHEN 'XYZ' THEN `USAGE` ELSE NULL END) AS XYZ
FROM myTable GROUP BY MRP;