【发布时间】:2019-01-15 17:12:41
【问题描述】:
我的桌子
+---------+----------+---+
| id | a1 | a2 | a3 |
+---------+----+----+----+
| 1 | 1 | 0 | 0 |
| 2 | 0 | 1 | 0 |
| 3 | 1 | 1 | 1 |
| 4 | 1 | 1 | 0 |
+---------+----+----+----+
我想要的结果: 奔驰 3 宝马 3 福特 1 大众2
我试过的查询..
SELECT
IF(a1=1,'Mercedes',
IF(a2=1,'BMW',
IF(a3=1,'Ford',
IF(a4=1,'VW',
'NO')))) AS marke,
COUNT(autos.id) AS anzahl FROM autos
WHERE autos.land=de GROUP BY marke ORDER BY anzahl DESC
我得到了想要的结果,但只有第一行计数正确。如何添加子查询以再次查询同一个表,显示每个字段的正确计数(a1、a2、a3)
还有什么我尝试: 下面的子查询也失败了!
SELECT
IF(a1=1,'Mercedes',
IF(a2=1,'BMW',
IF(a3=1,'Ford',
IF(a4=1,'VW',
'NO')))) AS marke,
IF(a1=1,(SELECT COUNT( autos.id) FROM marke WHERE a1=1),
IF(a2=1,(SELECT COUNT( autos.id) FROM marke WHERE a2=1),
IF(a3=1,(SELECT COUNT( autos.id) FROM marke WHERE a3=1),
IF(a4=1,(SELECT COUNT( autos.id) FROM marke WHERE a4=1),
'NO')))) AS anzahl,
FROM autos
WHERE autos.land=de GROUP BY marke ORDER BY anzahl DESC
希望这能让我的问题更易于理解。
【问题讨论】:
-
预期的结果是什么?为我们提供一个显示预期结果的文本格式表格。
-
结果应该是 Mercedes 3 BMW 3 Ford 1 VW 2