• ベストアンサー

件数の多い順にselect

テーブル名:HOGE ID  USER --------------- 001  A 002  C 003  A 004  B 005  A 006  C 007  A 008  C 009  D 010  D で、下記のような結果が出したいです。 A 4 C 3 D 2 B 1 件数の多い順に並べたいです。 宜しくお願い致します。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

基本的な構文しか使っていないと思いますが? SELECT USER,count(*) AS COUNT FROM HOGE GROUP BY USER ORDER BY COUNT DESC

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

関連するQ&A

  • SELECT DISTINCTの結果件数をCOUNTする方法

    SQL SERVER 2005 EXPRESS のストアドプロシージャで、 SELECT結果の件数を、変数 @count に取得したいのですが DISTINCTの引数が複数あるのが原因なのか、上手くいきません。 目的はテーブル「TBL」から、COMとUSERの組み合わせの リストを抽出し、その件数を取得する事です。 テーブル名:TBL COM  USER --------------- 001  A 002  A 003  A 001  B 002  A 003  C 「COMとUSERの組み合わせで、重複するものは取らない」のならば  SELECT DISTINCT COM,USER  FROM TBL で、下記のような結果が得られます。 COM  USER --------------- 001  A 002  A 003  A 001  B 003  C で、この結果件数である「5」を取りたいのですが DECLARE @count int  SELECT @count = COUNT(DISTINCT COM,USER)  FROM TBL print @count と打っても失敗します。 ( )の括りやCOUNTの位置をいろいろと試したが出来ませんでした。 COUNT DISTINCT(複数項目)が出来ないのならば、 どうすればこの結果の件数を取得できるでしょうか? どうかご教授授くださいませ。よろしくお願いします。

  • 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について ユーザーごとに、日別の売上データを下記のSQLで集計しています。 これを、グループ化を保ったまま、全期間での売上げ件数合計の多いユーザー順に並び替えるにはどうすればよいでしょうか? select w.user_id as user_id, DATE_FORMAT(w.created_at,"%Y-%m-%d") as days,w.type as type, count(*) as num from uriage w group by user_id,type,days order by user_id,days,type; +---------+------------+-----------------+-----+ | user_id | days    | type      | num | +---------+------------+-----------------+-----+ |    1 | 2010-10-15 | カテゴリ1   |  1 | |    1 | 2010-10-15 | カテゴリ2   |  1 | |    1 | 2010-10-15 | カテゴリ3   |  5 | |    1 | 2010-10-16 | カテゴリ2   |  1 | |    1 | 2010-10-16 | カテゴリ3   |  1 | |    2 | 2010-10-15 | カテゴリ1   |  1 | +---------+------------+-----------------+-----+

  • select結果でのupdate

    テーブルがふたつあります。 片方のテーブルA(hoge1)のnameに、もう片方のB(hoge2)のnameをいれたいのです。 テーブルAとBはidでリレーションを張って、それぞれ対応する列にいれたいと思ってます。 tabale A hoge1 id | name | foo ----+-----+---- 1 | 1111 | xxxx 2 | 2222 | yyy 3 | 3333 | zzzz tabale B hoge2 id | name | bar ----+-----+--- 1 | 1.net | 1 2 | 2.net | 0 3 | 3.net | 1 期待する結果 tabale A hoge1 id | name | foo ----+-----+---- 1 | 1.net | xxxx 2 | 2.net | yyy 3 | 3.net | zzzz Bに変更はなし update hoge1 set name = b.name from hoge2 b , hoge1 a where a.id = b.id ; とやるとname列が全て 1.netになってしまい UPDATE hoge1 SET name = (select b.name from hoge2 b , hoge1 a where b.id = a.id ) ; ERROR: More than one tuple returned by a subselect used as an expression. とするとエラーです。(oracleならうまくいくとnetで調べたのですが。。) どなたかご教授いただけますか。

  • excel2000 ある列の項目名をカウントしその件数表示をする

    エクセルで表10行×5列の表があります。1列目にあるデータが入っております。その項目名をカウントし多い順に別の表にその項目名と件数を表示させたい。できるだけ自動的におこなうためにはどうすればよいでしょうか。 例 :ある表 1列 A B c B c A D E F B 結果 別の表 項目 件数 B   3 A   2 C   2 D   1 E   1 F   1

  • テーブルの内容とテーブルのカラムの件数

    以下のようなテーブルがあります。 そのテーブルの内容と、そのテーブルのあるカラムの件数を条件にして抽出したいのですが、どのように指定すればよろしいでしょうか? テーブルA id(int) AUTO_INCREMENT, user_id(varchar), price(int), date(datetime) 表示したい一覧 user_id | date | price A | 2014-03-10 10:00:00 | 2600 B | 2014-03-11 11:00:00 | 2720 A | 2014-03-13 12:00:00 | 2500 C | 2014-03-14 15:00:00 | 2860 B | 2014-03-18 13:00:00 | 2450 A | 2014-03-19 19:00:00 | 2550 ・・・ などのレコードがあった場合、 user_idが同じ場合のレコード数が2~5の場合等を抽出したいと思います。 うまく表現できませんが、このような場合の抽出の仕方をわかる方、よろしくお願いします。

    • ベストアンサー
    • MySQL
  • select文の書き方

    助けてください……(T-T) oracleをつかっていますが、SQLが苦手すぎて、どうしたらいいか分かりません。。。 解決策をご存じの方、教えていただけないで しょうか? テーブルは下記の2つがあります。 (1)Aテーブルの1カラムに、複数の商品IDを格 納している(カンマ区切り) (2)Bテーブルには、商品ID&商品名の一覧が ある このAテーブルの商品ID列に番号から、Bテー ブルの商品名を取得したいです。 ■Aテーブル no | 商品ID 1001 | 1、2 1002 | 1、2、3 1003 | 3 ■Bテーブル 商品ID | 商品名 1 | 商品A 2 | 商品B 3 | 商品C ■とりたいデータの形 1001 | 商品A、商品B 1002 | 商品A、商品B、商品C 1003 | 商品C カンマ区切りで格納しているとin句は使えな いと知りました。。 テーブルにカンマ区切りで格納することは、 変えることはできませんし、 SQLで1回で取得しなきゃいけないのです。 そんなこと、可能なのでしょうか。。 明日の朝までに教えていただければ、 すごくすごく助かります。。 すみませんが、宜しくお願いします。

  • select文でゴミデータを検索したい!!

    Oracle8i databaseに対するSQLについて教えていただきたく。 Table A(従業員)のRow_IDをキーにして3つの Table B(性別)、C(年齢)、D(部署)がそれぞれB.emp_id、C.person_id、D.target_id で関連付けられる場合に Table B、C、Dのどのテーブルにも関連付けられない宙ぶらりんなTable AのRow_IDの調べ方が分かりません。 尚、Table Aはマスター表でRow_IDの重複はありませんが、B、C、Dに関してはTabele Aのレコード1行に対してN行存在します。 誤ったレコードをTable Aに挿入してしまいメンテを行う為に宙ぶらりんになっているTable Aのレコードを調査したいのです。 どうか宜しくお願い致します。

  • SELECT出来るのにDELETE出来ないのはなぜ

    MySQLで下記SELECTレコードを削除したいと思い、 DELETEへ変えたら文法エラーになります。 SELECT * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 DELETE * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 どう書けば良いでしょうか?

    • ベストアンサー
    • MySQL
  • SQL文の書き方

    以下の様なテーブルがあったとして name ┌────┬───┐ │NAME_CD │ NAME │ ├────┼───┤ │1     │ hoge1│ ├────┼───┤ │2     │ hoge2│ ├────┼───┤ │3     │ hoge3│ └────┴───┘ id ┌───┬──┐ │ID_CD │ ID │ ├───┼──┤ │1    │ a1 │ ├───┼──┤ │2    │ b2 │ ├───┼──┤ │3    │ c3 │ └───┴──┘ 結果として ┌─┬───┐ │ID│ NAME │ ├─┼───┤ │a1│ hoge1│ ├─┼───┤ │b2│ hoge2│ ├─┼───┤ │c3│ hoge3│ └─┴───┘ のようにするにはどうしたらよいのでしょうか?

    • ベストアンサー
    • MySQL