
SQLで グループ毎にカウントした数でなくて割合を求めたいのです。
select name, count(*) from データベース名 group by name order by 2 desc;
とすると、以下のように200件あるデータで
グループ(名前)毎に個数が表示されますが、
田中 70
上村 120
橘川 10
下のように割合(パーセント)を求めるにはどのようにSQLを書けばよいのでしょうか?
田中 70 35%
上村 120 60%
橘川 10 5%
No.2ベストアンサー
- 回答日時:
MySQL 4.1以降なら、インラインビューを使うと簡単です。
-- MySQL 4.1-
select name,cnt,cast(cnt/ttl*100 as signed) as pct
from
(select name,count(*) as cnt
from t0
group by name) as x,
(select count(*) as ttl
from t0) as y
;
MySQL 4.0までの場合は、1回のSQLでは結果を得られません。
temporary tableまたはユーザ変数を利用して、2回のSQLで得る必要があります。ユーザ変数を利用する例を示します。
-- MySQL -4.0
select count(*) into @ttl from t0;
select name,count(*),cast(count(*)/@ttl*100 as signed) as pct
from t0
group by name
;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHP+MySQL
-
使うべきでない文字。
-
sum()の出力結果順に並び替えを...
-
割合(パーセント)を求めるに...
-
phpmyadminはトリガーやIF文を...
-
チェックボックスの項目をDBにi...
-
Accessで日付が変わると番号が...
-
ADO VBA 実行時エラー3021
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
GROUP BYを行った後に結合した...
-
ACCESSの集計クエリで3件ある...
-
ACCESSで大量の更新を行うと「...
-
ADOでエクセルからアクセス...
-
Excelで、改行がある場合の条件...
-
oracleの分割delete
-
キーが同じを複数行を1行にま...
-
Accessで別テーブルの値をフォ...
-
Access終了時の最適化が失敗?
-
ACCESSのクエリで同じSQL文だが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【MYSQL】asでリネームしてwher...
-
MySQLで MAX()とGROUP BYを使う...
-
初心者Mysqlの関数のsubstring...
-
使うべきでない文字。
-
SQL文で右から1文字だけ削除す...
-
何にかが違うから エラーなんで...
-
MySQL のデータからドロップダ...
-
割合(パーセント)を求めるに...
-
phpmyadminはトリガーやIF文を...
-
sum()の出力結果順に並び替えを...
-
チェックボックスの項目をDBにi...
-
【初歩】ラジオボタンをつかっ...
-
PHP+MySQL
-
SQLの集計で「全て」の合計も表...
-
カウント結果を1レコードの中...
-
姓名の前後を入れ替えるSQL命令...
-
名寄せして件数を取得する事は...
-
月別、販売員別の集計がわかり...
-
表示幅を短くしたい
-
LIKE述語/SQLとPHPを使った検...
おすすめ情報