- ベストアンサー
行数をカウントするSQLにつきまして
行数をカウントするSQLにつきまして いつもお世話になっております。 下記の売上テーブルから りんご=3(行) みかん=2(行) メロン=1(行) というようなデータを抽出するSQLはどのように記述したら良いのでしょうか? ・・・・売上テーブル・・・ 売上番号 品名 単価 1 りんご 100 2 りんご 100 3 りんご 100 4 みかん 150 5 みかん 150 6 メロン 250
- gamera2950
- お礼率62% (53/85)
- その他(データベース)
- 回答数2
- ありがとう数20
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
RDBMS名とバージョンを、明記するようにしてください。 ここに質問をする人で、RDBMSを省略する人は、MS-ACCESSというパターンが多いですが、非常に方言が多いですので。 品名ごとに別行としてということなら、単純なグループ化です。 SELECT 品名,COUNT(*) AS 行数 FROM 売上テーブル GROUP BY 品名
その他の回答 (1)
- Hardking
- ベストアンサー率45% (73/160)
SELECT COUNT(*) , 0, 0 FROM select SUM(ACOUNT) as apple_max, SUM(OCOUNT) as orange_max, SUM(MCOUNT) as melon_max from (select count(*) as ACOUNT,0 as OCOUNT,0 as MCOUNT from 売上テーブル where 品名='りんご' union all select 0 as ACOUNT, count(*) as OCOUNT,0 as MCOUNT from 売上テーブル where 品名='みかん' union all select 0 as ACOUNT,0 0 as OCOUNT,count(*) as MCOUNT from 売上テーブル where 品名='メロン') mytbl
お礼
早々の御対応ありがとうございます。 SQLが複雑で、今の私の力では、理解することができないのが現状です。 ただ、記述されている内容の概略は理解できたと考えております。 ありがとうございました。
関連するQ&A
- 行数をカウントするSQLにつきまして
行数をカウントするSQLにつきまして いつもお世話になっております。 下記の売上テーブルから みかん=3(行目) というようなデータを抽出するSQLはどのように記述したら良いのでしょうか? ・・・・売上テーブル・・・ 売上番号 品名 単価 101 りんご 100 102 りんご 100 103 みかん 150 104 りんご 100 105 みかん 150 106 メロン 250 postgre8.3のためrow_numberが使えません
- 締切済み
- PostgreSQL
- エクセル いろいろな品名ごとに条件付きのカウントをしたい。
エクセルマクロについて教えてください。 以下の「元の表」から「抽出した表」のように、○がついているもののカウントをしたいのですが、マクロでやるにはどのようにしたらよいでしょうか。 品名は特定なものではなく、無限にあります。 〔元の表〕 品名 区分 りんご ○ りんご × みかん ○ バナナ ○ バナナ × キウイ ○ りんご × キウイ ○ りんご ○ : : 〔抽出した表〕 品名 区分 数量 りんご ○ 2 みかん ○ 1 バナナ ○ 1 キウイ ○ 2 : :
- 締切済み
- オフィス系ソフト
- PHP SQL 問合せについて
SQLについて質問いたします。SQL 全般でも結構です。 No,name 1,ばなな 2,りんご 3,ばなな 4,みかん 5,ばなな 6,りんご 上記テーブルで 1,ばなな 3,ばなな 5,ばなな 2,りんご 6,りんご 4,みかん の結果を得るSQLはどのように記述すればよいでしょうか?
- ベストアンサー
- その他(データベース)
- mysqlのSQL文の書き方について
mysqlでA,Bのテーブルがあるとします。 A ID1 りんご ID3 みかん ID4 ぶどう B ID2 メロン ID3 みかん ID4 ぶどう この二枚のテーブルでどちらかのテーブルに存在すればヒットする ようなselec文はどう書いたらいいのでしょうか。重複する行は、 一行のみ抜き出したいです。 こういうかんじにです。 ID1 りんご ID2 メロン ID3 みかん ID4 ぶどう よろしくお願いします。
- ベストアンサー
- その他(データベース)
- 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文について
SQLの抽出方法について質問です。 【会員】テーブル関連 すきなフルーツを複数選択できます。 テーブル【MEMBER】と【MEMBER_FRUIT】2つのテーブルで管理 例: Aさんは「りんご」「みかん」「スイカ」がすきです。 Bさんは「りんご」「メロン」がすきです。 Cさんは「みかん」「スイカ」がすきです。 テーブル【MEMBER】 ID、MEMBER_CD、MEMBER_NAME 1 10 Aさん 2 20 Bさん 3 30 Cさん ・ ・ テーブル【MEMBER_FRUIT】 ID、MEMBER_CD、FRUIT_CD 1 10 1 2 10 2 3 10 3 4 20 1 5 20 4 6 30 2 7 30 3 ・ ・ テーブル【FRUIT】 ID、ITEM 1 りんご 2 みかん 3 スイカ 4 メロン 【抽出条件】関連 条件も複数選択できます。 テーブル【SEARCH】と【SEARCH_DETAIL】2つのテーブルで管理 ※会員を抽出条件を管理するテーブル テーブル【SEARCH】 ID、TITLE 1 「りんご」または「メロン」がすきな人 2 「スイカ」がすきな人 ・ ・ テーブル【SEARCH_DETAIL】 SEARCH_ID、FRUIT_CD 1 1 1 4 2 3 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 【SEARCH】のID1の出力結果イメージ MEMBER_CD、MEMBER_NAME 10 Aさん 20 Bさん こんなSQLを作成してみました。 【SEARCH】テーブルをループで1件づつ処理しようと考えています。 他にもっと効率がいいSQLがありますか? よろしくお願いします。 SELECT DISTINCT MEMBER.MEMBER_CD, MEMBER_NAME FROM MEMBER,MEMBER_FRUIT WHERE MEMBER.MEMBER_CD = MEMBER_FRUIT.MEMBER_CD AND MEMBER_FRUIT.FRUIT_CD in ( SELECT FRUIT_CD FROM SEARCH,SEARCH_DETAIL WHERE SEARCH.ID = SEARCH_DETAIL.SEARCH_ID )
- ベストアンサー
- その他(プログラミング・開発)
- SQLを教えてください。
以下に5つのテーブルがあるとします。 (1)全体テーブル ・登録順番号(Key) ・登録名 (2)商品テーブル ・項目コード(Key) ・品名コード(Key) ・商品登録順番号(Key) ・商品サイズ(Key) ・品名 (3)商品単価テーブル ・項目コード(Key) ・品名コード(Key) ・商品登録順番号(Key) ・商品サイズ(Key) ・登録順番号(Key) ・商品単価 (4)新_商品単価テーブル ・項目コード(Key) ・品名コード(Key(Key)) ・商品登録順番号 ・商品サイズ(Key) ・登録順番号(Key) ・新_商品単価 (5)詳細テーブル ・登録順番号(Key) ・品名コード(Key) ・原価項目コード(Key) ・商品数量A ・商品数量B 上記のテーブルから、以下の条件に合致する「(1)の登録名」「(2)の品名」「(4)の新_商品単価×(5)の商品数量※」を取得したい。 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 【条件1】全てAND条件 新_商品単価テーブルの項目コードが100 新_商品単価テーブルの品名コードが50 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※<0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 上記で抽出出来るレコードに加えて、以下 【条件2】全てAND条件 新_商品単価テーブルの項目コードが200~300あるいは400~500 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※=0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A どのようなSQLで抽出できますでしょうか?? DBはAccessです。
- 締切済み
- SQL Server
- 抽出した行数を変数に入れたい(オラクルSQL)
SELECTで抽出した行数を変数に格納したいのですが、上手くいきません。 SQLにあまり経験がなく、ネットで調べながら実践しております。 例えば以下の簡単なSQLを作ったとして、 ---------------------------------------------------- SELECT a,b,c,d,e,f FROM table WHERE c=10 AND e=20; ---------------------------------------------------- ここで抽出した行数を取得し、それを変数に入れたいと思っております。 というのも、後々、抽出したデータの行数を表示したい場合に SELECT COUNT(*) FROM table WHERE c=10 AND e=20; というSQLをその都度入力していては非効率だと思ったからです。 そこで抽出する際に行数を取得し、それを変数に格納して、 行数を表示する処理が今後必要になった際に、その変数を表示すれば良いと考えました。 ですがネットで変数のことを調べた際に VARやDEFINE等のコマンドを見つけましたが、SQLを実行しても上手くいきません。 最初に記載したSQLに、どのような構文を入れたら良いのでしょうか。
- ベストアンサー
- Oracle
- SQL文で表すには
以下の表を用いてSQL文を作成しようと思ってるんですが、途中までしか思いつかないので、どなたかご教授のほうよろしくお願いします。 shohin shiire 商品番号 商品名 単価 仕入番号 仕入先名 0001 みかん 100 001 A 0002 りんご 200 002 B 0003 ぶどう 300 003 C tran 購入番号 商品番号 仕入番号 数量 1 0001 001 1 2 0001 002 2 3 0001 003 3 4 0001 001 4 5 0001 002 5 6 0002 003 6 7 0002 001 7 8 0002 002 8 9 0003 003 9 10 0003 001 10 11 null 0004 20 これを以下のように出力するためにはどのようなSQL文を書けばよいですか? 商品番号 商品名 仕入番号 仕入先名 数量 単価 金額 0001 みかん 001 A 5 100 500 0001 みかん 002 B 7 100 700 0001 みかん 003 C 3 100 300 0002 りんご 001 A 7 200 1400 0002 りんご 002 B 8 200 1600 0002 りんご 003 C 6 200 1200 0003 ぶどう 001 A 10 300 3000 0003 ぶどう 003 B 9 300 2700 0004 null 004 null 20 null null ここまでは正しいと思うのですが・・・ select shohin.商品番号, shohin.商品名, shiire.仕入番号, tran.数量, shohin.単価, tran.数量 * shohin.単価 as 金額 よろしくお願いします。
- ベストアンサー
- Oracle
- 教えて下さい!
エクセル2007でマクロを使用しています。 データー表を作り、マクロで作ったボタンを押すとデーター表内の当てはまるデーターが抽出されるという表です。下記参照。 (1)下記の様なデーター表があります。 リンゴ 品名検出←(マクロボタン) みかん (品名内容) イチゴ メロン リンゴ (2)(品名内容)に品名を入れてマクロボタンを押すと、 リンゴ 品名検出 みかん (リンゴ) イチゴ メロン リンゴ (3)「リンゴ」が検出される仕組みです。 リンゴ 品名検出 リンゴ (リンゴ) 上記の表でセルを挿入して(増やして)マクロを押すと、マクロが反応しなくなりました。 挿入するだけではなく、何か別の作業もしないといけないのでしょうか? 分かりづらい質問と思いますが、宜しくお願い致します。
- 締切済み
- オフィス系ソフト
お礼
御回答ありがとうございます。 DBはACCESS2003です。(今後記述いたします) 実施することができました。 感謝しております。 どうも私はまだ、なかなかSQLになれていないようです。