Sql 如何对计数值求和
我是SQLite的新手,所以请原谅我问了一些愚蠢的问题。 从包含飞机数据的表的数据库中,我可以使用现有查询统计制造商数据的记录:Sql 如何对计数值求和,sql,sqlite,counting,Sql,Sqlite,Counting,我是SQLite的新手,所以请原谅我问了一些愚蠢的问题。 从包含飞机数据的表的数据库中,我可以使用现有查询统计制造商数据的记录: SELECT Manufacturer, COUNT(Manufacturer) AS Number FROM aircraft WHERE Manufacturer like 'Airbus%' GROUP BY Manufacturer ORDER BY COUNT(Manufacturer) DESC; 这给了我 Manufacturer Num
SELECT Manufacturer, COUNT(Manufacturer) AS Number
FROM aircraft
WHERE Manufacturer like 'Airbus%'
GROUP BY Manufacturer
ORDER BY COUNT(Manufacturer) DESC;
这给了我
Manufacturer Number
Airbus 3473
Airbus Military 29
Airbus Helicopters 2
有没有一种方法可以在不删除“GROUP BY”子句的情况下在结果中获得计算出的总计(3504)?
我无法使SUM()和TOTAL()工作。有关计算聚合的问题似乎使用了表中的值。With
UNION ALL
:
SELECT t.*
FROM (
SELECT Manufacturer, COUNT(Manufacturer) AS Number
FROM aircraft
WHERE Manufacturer like 'Airbus%'
GROUP BY Manufacturer
UNION ALL
SELECT 'Total', COUNT(Manufacturer)
FROM aircraft
WHERE Manufacturer like 'Airbus%'
) t
ORDER BY Manufacturer = 'Total', Number DESC
请参阅。或使用CTE:
WITH cte AS (
SELECT Manufacturer, COUNT(Manufacturer) AS Number
FROM aircraft
WHERE Manufacturer like 'Airbus%'
GROUP BY Manufacturer
)
SELECT t.*
FROM (
SELECT * FROM cte
UNION ALL
SELECT 'Total', SUM(Number) FROM cte
) t
ORDER BY MAnufacturer = 'Total', Number DESC
请参阅。