• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:GROUP BY について)

GROUP BYについて

このQ&Aのポイント
  • データを左の2列で分類し、カウントした結果を出力するためにGROUP BY句を使用します。
  • SQLを簡潔に記述するために、データが0と1のみであることを活かし、カウントのみでデータを集約します。
  • 上のデータの例では、GROUP BYを使用してデータを分類し、各グループごとにカウントした結果を出力します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>なるべく簡単なsqlで記述したいです。 >よろしくお願いします。 何を「よろしく」なのでしょうか? ここのサイトは、「仕様を提示して、SQL等を作ってもらう」というサイトではありません。具体的に分からないことを示して、質問することが規約になっており、「~を作って欲しい」といった書込みは、「質問でなく、作業依頼」として削除される可能性があります。 select 列1,列2,sum(列3),sum(列4), ~ ,sum(列n) from 表名 group by 列1,列2 でいいのでは?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • GROUP BYを使ったSELECT文の総件数を求める方法

    【表A】 列1 | 列2  ----------- 山田 | A 山田 | A 田中 | A 田中 | B 田中 | C 木村 | A 木村 | A 木村 | B 上記で列1・列2をグループ化した件数を求めたいのですが、Oracleだと   SELECT COUNT(*) FROM (SELECT 列1,列2 FROM 表A GROUP BY 列1,列2) というSQL文で結果「6」が出力されますが、SQLServerではエラーとなってしまいます。 SQLServerで実現したい場合はどのように記述すればよろしいでしょうか?

  • accessでチェックされたもをカウントしたいんですが

    Access2000にて次のようなデータベースを作成しています。 おそらく非常に初歩的な質問だと思うのですが、全くの素人のため困っています。 バカバカしいなどと言わずにどうかご教授願います。。。 ----------------------- No グループ名  分類1  分類2  分類3 1  グループA   レ    レ    レ 2  グループB             レ 3  グループB   レ         レ 4  グループB        レ    レ 5  グループC   レ 6  グループC   レ         レ ----------------------- 分類1~3はチェックボックスで入力されています。 このデータを元に、それぞれ分類1~3に属するデータの数をカウントしたいのです。 レポートの記述でどのようにすればチェックの入ったものだけをカウントできる のでしょうか。 目的は上のテーブルを次のような表にすることです。 -------------------- グループ名  分類1  分類2  分類3 グループA   1    1    1 グループB   1    1    3 グループC   2    0    1 ──────────────────── グループ計   4    2    5 -------------------- どうかよろしくおねがいします。

  • exelのグループ化(?)について

    windows XPを使用しています。 exel2003の表作成における並べ替えについてお教えください。 うまく説明が出来ないので伝わりにくいかも知れませんが 現在、(A~Iまで)9列、(1~5まで)5行を1つのタイトルとしてデータを記入しています。 (セル5以下、5行ごとに別タイトルのデータを20ヶ程作成しております。) 各データ、1行目はA~Iまで何かしらのデータは入っているのですが、それ以下の行には、データが入るセルと入らないセルとがあります。 このように虫食いのようなデータ表の場合、そのまま『並べかえ』を行うと、空白セルが下(もしくは上)に追いやられ、データが上詰め(下詰め)となってしまいます。 (A~Iまで)9列、(1~5まで)5行を1つのタイトルとしてみなし、例えばタイトル名を基準に(その他空白セル等はそのままに)並べ替えることは出来ないのでしょうか? わかりにくい質問で大変恐縮です。

  • 複数行のグループ集計とカウント

    初歩的な質問で、既に質問されている内容でしたらすいません。 不動産のデータベースでひとつのテーブル内に、最寄り沿線が3つ記録されています。 3列のデータをまとめてグループ化し、沿線名ごとのカウントを取るにはどうすれば良いでしょうか?テーブルの詳細は、添付画像をご確認ください。 1列ごとのやり方はわかるのですが、3列まとめてカウントする方がわかりません。 どなたか教えて頂けませんでしょうか。

    • ベストアンサー
    • MySQL
  • group by のソート

    mysql Client API version 3.23.49 PHP/4.4.5 で動作させようと思っています。 table a   b 1   2 3   4 2   4 7   1 2   6 1   6 上のデータから以下のような結果を得たいのですが table a   b  idcount1 1   6    2 3   4    1 2   6    2 7   1    1 グループで集計をとり、その上でbに6がある場合は6その他は bの値にNULLもしくは別の値が入るという形でいいのですが・・・ できません。 SELECT a, b, count( * ) AS idcount1 FROM table GROUP BY a するとはじめに読みこんだ値がbには入ってしまいます。 結果 table a   b  idcount1 1   2    2 3   4    1 2   4    2 7   1    1 SELECT a, b, count( * ) AS idcount1 FROM table where b=6 GROUP BY a するとbの値ははじきますし、カウントしている意味がなくなります。 結果 table a   b  idcount1 1   6    1 2   6    1 GROUP BY 処理前のソートを考え、from table後に oder by b=6 asc を使ったがエラー 末尾に oder by b=6 asc を使うと最初に試した値をソートするだけでした。 宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • GROUP BY , MAX の使用法に関して

    いつもお世話になります。 GROUP BY , MAX の使用法に関して質問です。 USERCDとKYOUTUNOでグルーピングをしてSEQの最大値のレコードを抽出しようとしています。 以下のようなSQL文の場合ですとBIKOUがないレコードを抽出する事が出来るかと思います。 【select USERCD , KYOUTUNO , MAX(SEQ) from テーブル1 group by USERCD , KYOUTUNO】 そこで、BIKOU も同時に抽出したいのですが、BIKOUを選択列に入れると「GROUP BYの式ではありません。」のエラーが出ます。 「そりゃそうだ」だと思うのですが、どうのようにすればSQL文を作れば結果のようなレコードを抽出出来るのでしょうか? よろしくお願いします。 ◆テーブル1のデータ USERCD KYOUTUNO SEQ BIKOU ------------------------------------- 100 100 1 あああああ 100 100 2 いいいいい 100 100 3 あいうえお 222 200 1 AAAAA 222 200 2 AAAAAA 3333 100 1 うううううう 44444 100 1 ううううう 44444 100 2 えええ ◆結果 USERCD KYOUTUNO SEQ BIKOU ------------------------------------- 100 100 3 あいうえお 222 200 2 AAAAAA 3333 100 1 うううううう 44444 100 2 えええ ■ORACLEのバージョン  Oracle9i

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • EXCEL/グループ数を数えるには?

    EXCELでグループ数を効率よくカウントする 方法を探しています。以下のようなデータが ある時、合計で表中に何グループあるかを 関数やマクロで効率的に算出する方法です。 No. Group No. 1 ASAP4425 2 ASAP4425 3 ASAP4425 4 ASAP4425 … 7944 CIFA3356 7945 CIFA3356 7946 CIFA3356 7947 FOBA3326 7948 FOBA3326 7949 FOBA3326 1) 同じグループをまとめて1件というように 集計したいのです。例中で言えば、No.1-4は 同じGroup名なので合わせて1件とカウントします。 7944-7946も1件というようにカウントします。 同様に以下のGroup名も同じものをまとめて1件と カウントしていき、最終的に何グループあるかを 調べたいのです。 2) ひとつのGroupに含まれる個別の件数は 一定しません。2つで1グループの案件もあれば、 100件以上が同じGroup 名を所有していることも あります。 総件数が9000件近くあり、いちいち手作業で分類 するのが面倒ですし、何よりも間違いが起きるのを 恐れています。単純にセル数のカウントではないので、 上手い関数もおもいつきません。 07年度予算策定のため分類作業中なのです。 宜しくお願い致します

  • SQL文(FORMAT)を教えてください

    表:TBL_LIST  列1:TBL_LIST_DATA = ABCDE のデータ(VARCHAR2(5))  列2:TBL_LIST_NO = 12345 のデータ(NUMBER(10)) があります 上記の列データの  (1)列1の左から2文字  (2)列1の右から3文字  (3)列2の左から2文字  (4)列2の右から3文字 をselectするSQL文を教えてください

  • GROUP BYの記述方法について

    GROUP BYの記述方法について教えてください --------------------- 受注データ(テーブル) --------------------- 品目CD 受注数 00001  10 00001  10 00002  20 00002  15 --------------------- 品目マスタ(テーブル) --------------------- 品目CD 品目名 00001  えんぴつ 00002  けしごむ 00003  色鉛筆 上記二つのDBから、品目ごとの受注数の合計を取得するときのSQL文として、どうするのが正しいのでしょうか? --------------------- 欲しい結果 --------------------- 品目CD 品目名  受注数 00001 えんぴつ 20 00002 けしごむ 35 (考えられるSQL) CASE1:受注データの品目CDと品目マスタの品目名のグループ化 SELECT A.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY A.品目CD, B.品目名 CASE2:受注データをグループ化した結果と品目マスタを結合 SELECT X.品目CD, X.受注数合計, Y.品目名 FROM  (SELECT 品目CD, SUM(受注数)   FROM 受注データ   GROUP BY 品目CD)X,品目マスタ Y WHERE X.品目CD = Y.品目CD CASE3:品目マスタの品目CDと品目名のグループ化 SELECT B.品目CD, B.品目名, SUM(A.受注数) FROM 受注データ A, 品目マスタ B WHERE A.品目CD = B.品目CD GROUP BY B.品目CD, B.品目名 レスポンスも含めて教えてください。 よろしく、お願いします。