我不理解,为什么我越来越0.01%而不是100%,请告知如何计算MYSQL中的百分比?
这是我的查询:
SELECT Total_Price,concat(round(total_price/(SUM(total_price)*100),2),'%') AS percentage
FROM Sales
WHERE Department IN ('SPORT','MUSIC')
AND DATE BETWEEN '2016-01-01' AND '2016-03-30'
感谢
我不理解,为什么我越来越0.01%而不是100%,请告知如何计算MYSQL中的百分比?
这是我的查询:
SELECT Total_Price,concat(round(total_price/(SUM(total_price)*100),2),'%') AS percentage
FROM Sales
WHERE Department IN ('SPORT','MUSIC')
AND DATE BETWEEN '2016-01-01' AND '2016-03-30'
感谢
尝试总做一个子查询.. 。
select t1.total_price, (t1.total_price/t2.grand_total)*100 as pc
from MyTable t1
inner join
(
select sum(tx.total_price) as grand_total
from MyTable tx
AND tx.DATE BETWEEN '2016-01-01' AND '2016-03-30'
) t2
on 1=1
WHERE Department IN ('SPORT','MUSIC')
AND DATE BETWEEN '2016-01-01' AND '2016-03-30'
谢谢。我收到这样的错误:“你的SQL语法有错误;查看与你的MySQL服务器版本相对应的手册,以便在'AND tx.DATE BETWEEN'2016-01-01'AND'2016附近使用正确的语法-03-30')t2在1 = 1处我处在第7行。你可以提供建议吗? – DjangoPy
解决方法:SELECT Total_Price,concat(round(total_price /(SUM(total_price))* 100,2),'%'AS百分比 FROM Sales WHERE Department IN('SPORT','MUSIC') AND日期'2016-01-01'和'2016-03-30'; – DjangoPy
您的查询没有意义。你有一个聚合,但没有“group by”。 –
@GordonLinoff MySQL对于聚合非常宽容。你可以用MySQL做很多错误的查询,它仍然可以工作。看看这个小提琴:http://sqlfiddle.com/#!9/531d0e/2 – Genu
@Genu如果你有一个吸蛋的示范,也是有用的。 – Strawberry