• ベストアンサー

ACCESSで集計のSQLの質問です

各IDごとのデータ件数を表示するSQLで質問です。テーブルは次のようになります。   連番  ID  名前    1  10  あああ    2  10  いいい    3  20  ううう    4  30  えええ    5  40  おおお    6  40  かかか となってるときに、IDごとのデータ件数をだしたいのですが。宜しくお願いいたします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

テーブル名を「テーブル1」とすると、 Select Count(連番) From テーブル1 Group By ID; もしくは Select Count(テーブル1.連番) From テーブル1 Group By テーブル1.ID; で大丈夫だと思います。 (「名前」よりも「連番」の方が空白(Null)になる可能性が低いと考え、「連番」での  カウントとしました)

その他の回答 (1)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

No1さんの回答の修正です。 Select ID, Count(連番) From テーブル1 Group By ID;

関連するQ&A

  • データの件数を集計してTOPを取得するためのSQL

    データの件数を集計して、その結果からもっとも件数が多いものだけを抽出する SQL について教えてください。 例えば以下のようなテーブルがあります。 ▼テーブル 名前 |交通手段|日付 -----+--------+---- Aさん|バス |5/1 Aさん|バス |5/2 Aさん|バス |5/3 Bさん|バス |5/1 Bさん|電車 |5/2 ※「日付」については、本質問に直接の関係はありません。 このテーブルにクエリを発行して、以下の結果を取得したいと考えています。 ▼取得したい結果 (ある交通手段をもっとも使った人を抽出) 名前 |交通手段|回数 -----+--------+---- Aさん|バス |3 Bさん|電車 |1 ※回数が同数の人がいる場合は、「ユーザID」が一番若い人を採用します。  「ユーザID」はこのテーブル例には含まれておりませんが、  「名前」が「ユーザID」であると読み替えてください。 なお、以下の結果を取得するクエリは 質問番号:6719239 にご協力いただけたおかげで解決しました。 SELECT 名前, 交通手段, COUNT(*) AS 回数 FROM テーブル GROUP BY 名前, 交通手段;  ↓ 名前 |交通手段|回数 -----+--------+---- Aさん|バス |3 Bさん|バス |1 Bさん|電車 |1 今回、この結果から 1件目 と 3件目 を抜き出したいと考えております。 プログラム側で対処はできるのですが、SQL の方がスマートに書けそうだと思っております。 なおレンタルサーバ上 (MySQL 5.0.77) で稼働させるため、 なるべく高速な SQL を希望いたします。

    • ベストアンサー
    • MySQL
  • 集計について

    SQLの集計についての質問なのですが +--+---+ | id|num| +--+---+ | 1|  1| | 1|  2| | 2|  1| | 2|  2| | 2|  3| +--+---+ このようなデータを +---+---+ | id1| id2| +---+---+ |  2|  3| +---+---+ のようにid毎のnumの件数を1行で取得する事は出来ないでしょうか。

  • 1つのSQLで2段階の抽出を行いたい

    恐らくそれほど複雑なSQLではないと思いますが、中々SQLが作成できず困っています。 回答いただければ嬉しいです。 以下のテーブルがあったと仮定します。 テーブル名:  売上げ明細 カラム:  ・商品ID … 売上げ明細なので一意ではありません  ・単価 … 同じ商品IDでも、レコードによって単価は異なります  ・数量 … 1~5の整数のみとします 実際のデータは以下の通りです。 商品ID,単価,数量 1001,50,2 1001,60,5 1002,90,3 1003,60,5 1003,80,4 1003,90,1 1004,60,3 上記データを以下の通り抽出するには、どのようなSQLを組めばいいでしょうか? 1.まず各商品IDの中から単価が最大のレコードだけを取り出す 商品ID,単価,数量 1001,60,5 1002,90,3 1003,90,1 1004,60,3 2.次に数量でgroup by して、件数をカウントする 数量,件数 1,1 3,2 5,1 1つのSQL文で2の結果が得られれば、途中の抽出条件は特に問いません。 ちなみにMySQL5を使っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • これをSQLでやることは可能ですか?

    すいません。どうしても閃かないので教えてください。 まず、テーブルは 連番  PK コード 日付 となっています。 その中のデータは 連番  コード   日付 -----+--------+--------- 1   |   001 | 2002/01 2   |   001 | 2002/02 3   |   002 | 2002/03 4   |   002 | 2002/04 5   |   003 | 2002/05 -----+--------+--------- となっています。 このデータの中から 「コード毎に日付が一番新しい連番」を取得したいのですが可能でしょうか? 結果は 連番   コード   日付 -----+--------+--------- 2   |   001 | 2002/02 4   |   002 | 2002/04 5   |   003 | 2002/05 -----+--------+--------- となって欲しいのですが・・・ どなたかこれを実現するSQLを教えてください。 お願いします。

  • ACCESS SQL文について

    現在データの更新をACCESSを使って行っているのですがSQLが上手く実行されなくて困っております。 テーブル1   ID  SUBID ------------------------   100  20000   100  20000   101  20000   200  20001   201  20001   201  10000   202  20000  テーブル2   kyuID  kyuSUBID  ID  subID ------------------------------   100   20000   111  11111   101   20000   111  11111   102   20000   123  12345   200   20001   123  12345   201   20001   555  55555   202   20000   777  77777 このようにテーブルにデータが入っており、テーブル1のIDとSUBID とテーブル2のkyuID とkyusubIDを紐づかせテーブル1のIDとSUBIDをテーブル2のIDとSUBIDにアップデートしたいと考えております。 結果 テーブル1   ID  SUBID ------------------------   111  11111   111  11111   111  11111   123  12345   555  55555   201  10000   777  77777 このような結果を求めたいと考えております。 私は頭が悪く解決できません。 わかる方、ご教授のほどよろしくお願いいたします。

  • ACCESS2000のSQLについて

    ACCESS2000のSQL文について質問です。 K情報テーブル:(支店(テキスト型),所属(テキスト),氏名(テキスト),ログ(テキスト),抽出件数(数値),処理日(日付型)) 支店 所属 氏名 ログ 抽出件数 処理日 ----------------------------------------- 関東 埼玉 太郎 A   50    2009/02/25 関西 大阪 次郎 B   15    2009/04/01 関東 埼玉 太郎 A   10    2009/03/05 関西 大阪 次郎 B   5    2009/04/06 東北 青森 三郎 C   2    2000/01/02 東北 青森 三郎 A   2    2000/01/02 ・ ・ ・ ----------------------------------------- 以上のテーブル情報を、SQL文にて抽出したいのですが、抽出条件が私には難解で解決の見通しが立ちません。ご教授をお願いします。 ***条件*** [ログ] = "A" のみ抽出。 現在日から過去3ヶ月前までのデータのみ抽出。 [氏名]ごと[ログ]の総合計。 [氏名]ごとの[抽出件数]の総合計。 [ログ]の総合計の上位30件を降順で。 順位にNo.をふる。 上記の条件で抽出したデータをを下記の作業テーブルに出力したと思っております。 作業テーブル:順位,所属,氏名,ログ件数,抽出件数 宜しくお願いします。

  • [ACCESS97]SQLの書き方

    グラフのレコードソースにクエリ・SQLを使用しています。データ入力チェックに使おうと思っています。妙なデータがはいった場合、グラフが乱れるのではないかと。 ソートは日付でしています。 それで、100レコードずつを順番に表示していきたいのですが、top値 だと最初からいくつ、、としか指定できません。これを、レコードの途中の任意の位置から取るにはどうしたらいいのでしょうか? IDとかのようにユニークな値でソートしているのであれば、大小関係で一発ですが、同じ値がいくつも存在する日付なもので困っています。 日付でソートしたものを配列に入れる、もしくは一度テーブルに書き出す等も考えているのですが、SQLでできたら助かります。 よろしくお願いします。

  • Access2007のVBAでのSQL構文問題

    テーブルは2つ(Aテーブル、Bテーブル)あります A (明細ID,個人ID,実績) 主キーは、明細ID+個人ID 111,001,3 222,001,4 333,001,5 444,001,7 555,001,7 111,002,3 333,002,4 444,002,5 666,003,4 777,003,5 666,001,6 ・・・ B (明細ID,年度)  主キーは明細ID 111,13 222,13 333,13 444,13 555,13 666,14 777,14 888,14 ・・・ この2つのデータから、以下の表を出したいです 年度別、個人ID別に<実績が5以上の件数>を出力 出力ラベルは、年度、個人ID、達成数(実績5以上の件数) C (年度,個人ID,達成数) 13,001,3 13,002,1 14,003,1 14,001,1 ・・・ これを満たすSQL文を教えて頂けませんでしょうか? またはクエリの作成方法でもかまいません 【年度】別、【個人ID】別に、実績が5以上の件数を出力 出力ラベルは、年度、個人ID、達成数(実績5以上の件数) 複雑すぎて、今の能力で解決できなかったので、どうぞアドバイス よろしくお願いします。

  • SQL GROUPで件数の一番多いレコードのみ取る

    SQL GROUPで件数の一番多いレコードのみ取る ORACLE10です。 次のようなテーブルがあります。 USER -----------テーブル名 ID,NAME,DATA----列名 1,A,any 1,A,any 1,B,any 2,C,any 3,D,any このテーブルから、IDをGROUPにして、さらに、一番使用頻度の多いNAMEを取得したいのです。 表示したいのは、IDとNAMEです。 つまり、取得結果例は次のようになります。 取得結果例 ID,NAME----列名 1,A 2,C 3,D SQL文をどのように作れば可能でしょうか? ちなみに、IDやNAMEのマスタテーブルはありません。 自分では、「(select ID, NAME, count(*) from USER group by ID, NAME) COUNT」で、COUNTを内部テーブルにして、グループ内で一番多いcount(*)をmaxで取得してみようかと思ったんですが、そこからアイデアが出ませんでした。

  • データの件数を集計するための SQL

    データの件数を集計するための SQL について教えてください。 例えば以下のようなテーブルがあります。 ▼テーブル 名前 |交通手段|日付 -----+--------+---- Aさん|バス |5/1 Aさん|バス |5/2 Aさん|バス |5/3 Bさん|バス |5/1 Bさん|電車 |5/2 ※「日付」については、本質問に直接の関係はありません。 このテーブルにクエリを発行して、以下の結果を取得したいと考えています。 ▼取得したい結果 名前 |交通手段|回数 -----+--------+---- Aさん|バス |3 Bさん|バス |1 Bさん|電車 |1 当方がイメージしている流れは以下の通りです。 SQL は苦手でして、これをひとつにまとめることができません。 1) GROUP BY で束ねる SELECT 名前, 交通手段 FROM テーブル GROUP BY 名前, 交通手段 2) 1)の結果の1件目をSELECTする SELECT COUNT(*) FROM テーブル WHERE 名前='Aさん' AND 交通手段='バス' 3) 1)の結果の2件目をSELECTする SELECT COUNT(*) FROM テーブル WHERE 名前='Bさん' AND 交通手段='バス' 4) 1)の結果の3件目をSELECTする SELECT COUNT(*) FROM テーブル WHERE 名前='Bさん' AND 交通手段='電車' なおレンタルサーバ上 (MySQL 5.0.77) で稼働させるため、 なるべく高速な SQL を希望いたします。

    • ベストアンサー
    • MySQL