如何用php查不同,php-MySql调查不同查询
大家好,我確實在MySql查詢中苦苦掙扎,我有一個名為“ info”的表,并且其中有一個名為“ rating”的列,評分在1-10之間.
現在,我需要生成一個百分比值,該百分比值表示1-6、7-8和9-10中有多少評級,但我需要它們拼命顯示,之后我需要第二個查詢,該查詢可以從中減去結果的百分比值1-6和9-10.
下面的查詢與我從所有研究中獲得的查詢一樣接近,但是我不知道如何僅獲得1-6的百分比,而不是全部,以及如何獲得第二個查詢以減去1-6和9-10個評分百分比.
SELECT rating,
COUNT(*) AS Count,
(COUNT(*) / _total ) * 100 AS Percentege
FROM info,
(SELECT COUNT(*) AS _total FROM info) AS myTotal
GROUP BY rating
解決方法:
select if(rating between 1 and 6, '1-6',
if( rating between 7 and 8, '7-8',
'9-10' )
) as rating_range,
count(1) as num
from info
group by rating_range
編輯:添加舍入和計算
可以用作子查詢.給定分組依據,您需要單獨獲取總金額:
select Q.rating_range,
Q.num,
round(Q.num * 100 / Q.total, 2) as percent
from (
select R.*,
(select count(1) from info) as total
from (
select if(rating between 1 and 6, '1-6',
if( rating between 7 and 8, '7-8',
'9-10' )
) as rating_range,
count(1) as num
from info
group by rating_range ) R
) Q
group by Q.rating_range
就相對價值而言,如果我有一個,我可能會在外部應用程序中做到這一點.否則,您可以執行我想進行的特定查詢:
select Q.rating_range,
Q.num,
round(Q.num * 100 / Q.total, 2) as percent,
round( (Q.num - Q.total_nine_ten) * 100 / Q.total, 2) as diff_from_nine_ten
from (
select R.*,
(select count(1) from info) as total,
(select count(1) from info where rating > 8 ) as total_nine_ten
from (
select if(rating between 1 and 6, '1-6',
if( rating between 7 and 8, '7-8',
'9-10' )
) as rating_range,
count(1) as num
from info
group by rating_range ) R
) Q
group by Q.rating_range
不是很優雅,但是可以用
標簽:survey,mysql,php
來源: https://codeday.me/bug/20191119/2037466.html
總結
以上是生活随笔為你收集整理的如何用php查不同,php-MySql调查不同查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springcloud 文件服务器,Sp
- 下一篇: 服务器raid卡装虚拟机,DELLR73