
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ランキング
-
MySQLで MAX()とGROUP BYを使う...
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
select句副問い合わせ 値の個...
-
実績累計の求め方と意味を教え...
-
DataGridViewにてセル以外をク...
-
SELECTで1件のみ取得するには?
-
集計後の数値が倍になる
-
Access終了時の最適化が失敗?
-
外部結合とor条件混在の記述方法
-
Oracle8iでSQL文の引数について
-
GROUP BYを行った後に結合した...
-
Excelで、改行がある場合の条件...
-
ADOのRecordCountプロパティに...
-
Excelでセルの書式設定を使用し...
-
主キーに重複があるレコードの...
-
Accessデータシートビューの行...
-
キーが同じを複数行を1行にま...
-
sqlplusの処理が途中でとまる
-
アクセスでレポートの1印刷内...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
何にかが違うから エラーなんで...
-
SQL文で右から1文字だけ削除す...
-
使うべきでない文字。
-
MySQLで MAX()とGROUP BYを使う...
-
【MYSQL】asでリネームしてwher...
-
割合(パーセント)を求めるに...
-
チェックボックスの項目をDBにi...
-
SQLの集計で「全て」の合計も表...
-
【初歩】ラジオボタンをつかっ...
-
sum()の出力結果順に並び替えを...
-
カウント結果を1レコードの中...
-
MySQL のデータからドロップダ...
-
初心者Mysqlの関数のsubstring...
-
並び変えについて教えてください
-
表示幅を短くしたい
-
Oracleの監視。
-
月別、販売員別の集計がわかり...
-
表示方法について
-
replaceを使って更に重複レコー...
-
JOINでの結果取得 サブクエリ...
おすすめ情報