SQLの集計について教えて下さい。DBはSQLiteかMySQLです(下記テストはSQLiteにて)
「meibo」テーブルから結果(1)を表示するにSQL文(1)で実現できました。
●meiboテーブル
name type univ
----------------------------------
鈴木一郎 国立 東大
高橋ニ郎 国立 東大
田中三郎 国立 京大
山本四郎 公立 大阪府立大
佐藤五郎 私立 慶応大
小川六郎 私立 早稲田大
●結果(1) type別の人数
type 合計
-------------------
公立 1
国立 3
私立 2
●SQL文(1)
SELECT type, count(name) FROM meibo GROUP BY type ORDER BY type ;
ここに「全ての合計」行を加えて結果(2)を表示したい場合、1つのSQL文で可能でしょうか?
それともSQL文(2)のように2つの文で行なうか、SQL文(1)の結果をプログラム側で処理して全ての合計を得るなどするしかないでしょうか?(typeの「全て」は無くても構わない)
もし1つのSQL文で可能ならどういう風になるのでしょうか?
●結果(2)
type 合計
-------------------
全て 6 ←この行を追加したい
公立 1
国立 3
私立 2
●SQL文(2)
SELECT type, count(name) FROM meibo ;
SELECT type, count(name) FROM meibo GROUP BY type ORDER BY type ;
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
単に全てをさきにORDER BY するだけ
SELECT '全て'as type , count(name) as 合計 FROM meibo
union all
SELECT type type, count(name) FROM meibo GROUP BY type
ORDER BY NOT type='全て' ,type ASC
No.3
- 回答日時:
#2です。
SQL例にROLLUPを入れ忘れました。SELECT type, count(name) FROM meibo GROUP BY type WITH ROLLUP
No.2
- 回答日時:
MySQLであれば、group by で rollup を指定すれば、合計も得られます。
実機確認してませんが、こんな感じです。
SELECT type, count(name) FROM meibo GROUP BY type
合計の行は、この場合は type列の値が null の行で総合計が返却されます。
なお、ROLLUP指定は標準SQLにも入りましたが、先行して実装しているRDBMSでは、指定方法が異なっている場合があるので注意してください。
>ただ、DESC付けると私立・国立・公立が降順になり、DESC無しだと「全て」が一番下になってしまいます。
>「全て」が一番上で残りが昇順(全て→公立→国立→私立)にするのはSQL的に可能でしょうか?
「公立」、「私立」などの文字コードを確認したうえで、言っているのでしょうか?
No.1
- 回答日時:
SELECT '全て' タイプ, count(name) FROM meibo
union all
SELECT type タイプ, count(name) FROM meibo
GROUP BY type ORDER BY 1;
忘れたな~こんな感じだったような。
回答ありがとうございます。
SELECT '全て' type , count(name) FROM meibo
union all
SELECT type type, count(name) FROM meibo GROUP BY type ORDER BY type DESC;
で
type 合計
-------------------
全て 6
私立 2
国立 3
公立 1
まで表示できました。
ただ、DESC付けると私立・国立・公立が降順になり、DESC無しだと「全て」が一番下になってしまいます。
「全て」が一番上で残りが昇順(全て→公立→国立→私立)にするのはSQL的に可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP 重複を防ぐ記述について教えて下さい。 3 2023/04/03 14:35
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
SELECTした合計値をそのまま割り算したい
MySQL
-
unionの結果は集計はできないですよね。。。。
Oracle
-
SQLでSUMなどの関数でデータが無い時に0を返したい。
Oracle
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【MYSQL】asでリネームしてwher...
-
使うべきでない文字。
-
【初歩】ラジオボタンをつかっ...
-
割合(パーセント)を求めるに...
-
sum()の出力結果順に並び替えを...
-
SQL文で右から1文字だけ削除す...
-
チェックボックスの項目をDBにi...
-
UNIQUE KEY user_name_inde
-
MySQLで MAX()とGROUP BYを使う...
-
カウント結果を1レコードの中...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
MERGE文を単体テーブルに対して...
-
GROUP BYを使ったSELECT文の総...
-
Access終了時の最適化が失敗?
-
Excelでセルの書式設定を使用し...
-
select insertで複数テーブルか...
-
差し込み印刷のレコード数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
使うべきでない文字。
-
【MYSQL】asでリネームしてwher...
-
SQL文で右から1文字だけ削除す...
-
MySQLで MAX()とGROUP BYを使う...
-
sum()の出力結果順に並び替えを...
-
割合(パーセント)を求めるに...
-
チェックボックスの項目をDBにi...
-
【初歩】ラジオボタンをつかっ...
-
SQLの集計で「全て」の合計も表...
-
MySQL のデータからドロップダ...
-
表示幅を短くしたい
-
phpmyadminはトリガーやIF文を...
-
カウント結果を1レコードの中...
-
MySQL関数max()を条件にSELECT...
-
replaceした上でwhere
-
SQLiteのLike句で抽出できない
-
MySQLでのあいまい検索について...
-
1つのテーブルから複数のテーブ...
-
MySQLで2つのテーブルのデータ...
-
今週の日曜日から土曜日までの...
おすすめ情報