我有一张这样的表:
id model status
1 Star 1
2 Star 0
3 Bana 0
4 Ship 1
5 Star 1
6 Ship 1
7 Ship 0
8 Bana 1
9 Bana 1
10 Ship 0
11 Ship 0
我想要这个:
Model On Off
Ship 2 3
Star 2 1
Bana 2 1
我尝试过这个,但时间太长了,当我表上有 8000 条记录时......
SELECT a.model,
(SELECT count(b.status) lib
FROM SpaceShips b
WHERE a.model=b.model
AND b.status='1'
GROUP BY b.model) ON,
(SELECT count(c.status) blo
FROM SpaceShips c
WHERE a.model=c.model
AND c.status='0'
GROUP BY c.model) OFF
FROM SpaceShips a
WHERE (a.status='0'
OR a.status='1')
GROUP BY model
ORDER BY model
最佳答案
您可以通过以下方式执行此操作:
SELECT
model,
SUM(status='0') AS Off,
SUM(status='1') AS On
FROM
SpaceShips
GROUP BY
model
-我在您的示例所需输出中看不到任何顺序,因此我跳过了它
关于php - 统计同一个表的某个状态列出现的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19634582/