パーセンテージ演算とランク付けの質問。
テーブルタブフィールドa1 a2があります
PHPコード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->a1 a2
王 0
王 1
王 3
李 1
李 2
ログイン後にコピー
算術演算a2にはkingの値があります>0 キングの値は合計2つあります。 、3 2/ 3 があります。出力 66%
Li は 100% であり、パーセンテージ サイズに従って大きいものから小さいものに並べ替えます
出力結果は次のようになります
PHPコード
<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
-->
李 100%
王 66%
ログイン後にコピー
-----解決策---------
select a1,sum(if(a2>0,1,0))/count(*)*100 as num from tab group by a1 order by num desc
ここで:
sum(if( a2> ;0,1,0)) 0 より大きい a2 の数を数える
count(*) 母集団の数を数える
0 より大きい数 / 母集団の数 * 100
合計に対する 0 より大きい割合。これは基本的な算術演算です