我正在使用下面的查询来生成下面的表,我想要的是获得最后每一行的总数
SELECT
FreeText,
COUNT(case Status WHEN 'BOOKING' then 1 else null end) AS Bookings,
COUNT(case Status WHEN 'QUOTE' then 1 else null end) AS Quotes
FROM
orders
JOIN customers ON orders.CustomerNumber = customers.CustomerNumber
WHERE
OrderDate <= CURDATE()
AND OrderDate > DATE_SUB(CURDATE(), INTERVAL 31 DAY)
AND FreeText IN ('user1','user2','user3')
AND STATUS IN ('BOOKING', 'QUOTE')
GROUP BY
FreeText
上面产生了这个表:
FreeText | Bookings | Quote
User1 | 23 |11
User2 | 11 |17
User3 | 8 |4
我希望查询产生什么:
FreeText | Bookings | Quote | Total
User1 | 23 |11 |34
User2 | 11 |17 |28
User3 | 8 |4 |12
帮助非常感谢
最佳答案
将COUNT(*)
添加到查询。
SELECT
FreeText,
COUNT(case Status WHEN 'BOOKING' then 1 else null end) AS Bookings,
COUNT(case Status WHEN 'QUOTE' then 1 else null end) AS Quotes,
COUNT(*) AS Total
FROM
orders
JOIN customers ON orders.CustomerNumber = customers.CustomerNumber
WHERE
OrderDate <= CURDATE()
AND OrderDate > DATE_SUB(CURDATE(), INTERVAL 31 DAY)
AND FreeText IN ('user1','user2','user3')
AND STATUS IN ('BOOKING', 'QUOTE')
GROUP BY
FreeText
关于mysql - 总和2来自行末同一表的计数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44950926/