• 締切済み

SQL文ので平均を出したいのですが…

MySQLというかSQL文の質問です。基本的なことですいません。 下のようなデータがあるとき、1つの会社で働いてる人数の平均ってどうやって出すのでしょうか? COUNT関数からAVG関数につなげる方法を考えたのですがうまくいきません。どなかた分かりましたらお願いします。 名前 |会社 --------------------- 伊藤 |A会 斉藤 |B社 鈴木 |C社 本田 |B社 山田 |C社 田中 |D社 佐藤 |D社 高橋 |C社 渡邉 |A会 中沢 |B社

  • MySQL
  • 回答数1
  • ありがとう数3

みんなの回答

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

>1つの会社で働いてる人数の平均 人数 ÷ 会社 です。 ※同姓の別人・同一会社名で別会社、と言うのは無しね。 Oracleだったら、 select count(*) / count(distinct 会社) from テーブル; count(*)で社員の数、count(distinct 会社)で重複を除いた会社の数を取得。 MySQLは記述方法を知らないので御免なさい。

penguin_n
質問者

お礼

ありがとうございます。SQLでも同様の処理でいけるみたいです。助かりました。 ただこの場合ですと数値は10人に対して4社ありますので平均は2.5人ですが、SQLで返ってくる数値は2になってしまうようです。おそらくSELECT関数を使うとint型にキャストされてしまうのだと思います。 しかし問題は解決できました。すばやい返答に感謝しております。

関連するQ&A

  • EXCELで数字を与えられた文字に変換し、規定のセルに同時に入力したい

    いつもお世話になり、誠に有難うございます。 またまたお教えいただきたいのですが、、、  A   B       C   D   E 1伊藤 ピッチャー  2斉藤 レフト 3佐藤 サード 4鈴木 ショート 5 6 7 とあった場合、 C2に「1」を入力すると「伊藤」にすぐに変換され、同時にE4の空白にも「伊藤」が自動入力される関数などがありましたら、ご教示願います。

  • エクセル

    複数条件のセルを数える関数を教えて下さい。 Sheet1   A    B   1 7/1    高橋   2      佐藤 3 8/1   阿部 4 7/1   高橋 Sheet2   A    B   1 高橋  「   」 2 佐藤 3 阿部 4 斉藤 Sheet2のB1に Sheet1の「”高橋”の”7/1”のみ」を数を数える   方法はありますか?  因みに7/1は日付で入力されてます。 countifなどで作業欄を使うのではなく、できればダイレクトに数える事ができると助かります。 またsumproduct((SheetB1:B4=Sheet2A1)*(Sheet1A1:A4<=TODAY())) ともしてみましたがうまくできませんでした。 何がいけないんでしょう? どなたか教えてください。

  • excel マクロ <フィルタ>

    excelのマクロで分からないことがあるので質問させてもらいます。 たとえば↓の写真のようなデータがあったとして、アルファベットさん(Aさん~Nさん)だけを表示するマクロを作る時は、フィルタをして、番号1~14にチェックをつけて・・・ってことをすると思います。そこに、ボタンをつけたいと思っています。 ボタン(チェックボックス)A、ボタン(チェックボックス)B、ボタン(チェックボックス)C、ボタンD、ボタンEをつけたいと思います。 ボタンAを押すと(チェックをつけると)→アルファベットさん(Aさん~Nさん)だけを表示 ボタンBを押すと(チェックをつけると)→山田、田中、鈴木だけを表示 ボタンCを押すと(チェックをつけると)→斉藤、佐藤、高橋、渡辺、伊藤だけを表示 で A、Bにチェックをつけるとアルファベットさんと山田、田中、鈴木を表示 B、Cにチェックをつけると山田、田中、鈴木、斉藤、佐藤、高橋、渡辺、伊藤を表示 ボタンDを押して、フィルタを解除。 ボタンEを押して、フィルタされた範囲を印刷。 ・・・・・という風に・・・ 【ボタンか、チェックボックスって書いたのは、どちらを使ったらいいのかわからないからであって、ほかにもフォームの種類がありますから、最適なのがありましたら教えてください。】 まとめると、データをボタンで絞り込んで(解除もできる)、ボタンで印刷したい。ということです。 結構、初心者なので、質問の内容がよくわからないかもしれませんけど、わかりやすく教えてください。 お願いします。

  • excelでシートから別シートに抽出する方法

    データシートに A   B    C 佐藤 りんご  25個 木村 オレンジ 3個 伊藤 メロン  12個 伊藤 スイカ  2個 佐藤 イチゴ  40個 佐藤 マンゴー 8個 というデータがあったとします。 それを別のシートに A   B    C 佐藤 りんご  25個    イチゴ  40個    マンゴー 8個 また別のシートに A   B    C 伊藤 メロン  12個    スイカ  2個 といったようにAに佐藤とか伊藤とか入力するだけでB、Cが自動で抽出できるようにできますか? 出来れば関数の入力でやりたいのですがわかる人がいましたらご教授ください。

  • Excel 条件に該当する行の異なるセル参照

    エクセル初心者ですが、質問をさせて頂きます。 関数を利用してSheet2に下記のような記録データを貼り付け   A   B  C   D 1 名前 組 成績  組内順位 2 山田 1  280   1 3 伊藤 1  233   2 4 佐藤 3  298   1 5 山本 2  264   1 6 斉藤 3  215   2 7 田中 2  256   2 Sheet1のC列に該当者名を参照する方法はございませんでしょうか?    A  B   C 1  組 順位 名前 2  1  1 3  1  2 4  2  1 5  2  2 6  3  1 7  3  2 [=INDEX(Sheet2!A:A,MATCH(AND(Sheet2!B:B=A2,D:D=B2),Sheet2!A:D,0))] このような形でC2から検査値をずらして 試してみているのですがなかなかうまくいきません。

  • エクセルでの集計関数No.2

    前回の質問より複雑なデータの集計が飛び込んで困っています。 例    A   B   C   D   E   F   G   H   I   J 1  鈴木 田中 佐藤 八木 石島 須藤 徳間 遠藤 伊藤 斉藤 2  田中 八木 田中 遠藤 鈴木 伊藤 佐藤 佐藤 鈴木 徳間 3  石島 鈴木 徳間 鈴木 伊藤 .... といったデータが存在しています(A1:J3)の範囲内で最頻値の文字列を検出する関数の組み合わせを教えてください。回答例 鈴木  しかも、鈴木 佐藤が同一の場合メッセージを表示させるには..とほほです。よろしくお願いします。                                               

  • SQL文おしえてください

    例えば、以下のような 2 つのテーブルがあるとします。 営業所テーブル (会社名) (担当者名)           会社A 担当者A          会社A 担当者B          会社B 担当者C          会社C 担当者D 商品売上テーブル (担当者) (売上)           担当者A  10万           担当者C   5万           担当者D  10万 これを以下のように会社名Aの会社だけを条件に「担当者B」の売上レコードがない場合でも、ゼロ件としてレコードを取得したいんですがどのようにすればよいのでしょうか。   (会社名)(担当者) (売上)    会社A  担当者A  10万    会社A  担当者B   0万 よろしくお願いします。

  • 書類をまたいで、列の足し算

    WindowsXPでOffice2003を使用しています。 タイトルでは簡単に書きましたが詳細は下記です。 「A」という書類があります。その書類には・・・   A    B    C 1 佐藤   15   10 2 高橋   5 ---- 0 [A1]佐藤 [B1]高橋 [B1]15 [C1]10 [B2]5 [C2]0 「B」という書類には・・・   A    B     C 1 高橋 ---10 ---10 2 佐藤 ---5 ---15 [A1]高橋 [B1]佐藤 [B1]10 [C1]10 [B2]5 [C2]15 そして全体の集計で「C」という書類をつくり・・・   A    B    C 1 佐藤 ---20 ---25 2 高橋 ---15 ---10 [A1]高橋 [B1]佐藤 [B1]20 [C1]25 [B2]15 [C2]10 「C」の書類は「A]「B」の書類を足したものです。  やりたいことはCの書類の[B1]のセルに「A]「B」から佐藤という名前を見つけ、佐藤であったなら[B]の列の合計をだす!といおう方法です。  「C]の書類の[C2]であれば書類「A]「B」から高橋を検索し高橋があったら高橋の[C]の列を足すという感じです。 「A」「B」はシートにしても構いません。 なにかいい方法ありますでしょうか?

  • EXCELの関数式を教えてください。

    例えば次のような値が入力してある際、B列が「算数」で「C列」が「良い」の人の人数を数えるエクセルの関数を教えてください。  A   B   C 1 田中 算数 良い 2 佐藤 国語 悪い 3 伊藤 国語 ふつう 4 高橋 算数 ふつう 5 山田 算数 良い

  • SQL文に関するとある問題について

    SQL文に関するとある問題について (3) 次の出庫記録の表に対して、以下のSQL文を実行したときに得られる値が 最も大きな数が得られるものは何ですか? 該当する記号を書いてください。 --------------------------------------------------------------- 商品番号 数量 日付 PRT145 4 20090610 DP255 2 20090610 DP266 3 20090611 PRT255 2 20090611 a SELECT MAX(数量) FROM 出庫記録 b SELECT AVG(数量) FROM 出庫記録 WHERE 日付='20090610' c SELECT COUNT(*) FROM 出庫記録 d SELECT SUM(数量) FROM 出庫記録 WHERE 日付='20090611' ------------------------------------------------------------ この場合、それぞれの選択肢が出す数字は a=1 b=3 c=4 d=5 なので、正解はdでいいんでしょうか? aのMAXって、最大なのはPRT145の数量4ですが、a=に4をいれるべきか、それともMAXなのはPRT145一つだけなので1にすべきか、まずそこで躓きました。 bのAVGは4+2=6なので、それの半分の3かな? cはそのまんま4にして dはSUMなんで、3+2=5.にしちゃいましたが、間違ってるでしょうか?   宜しくお願い致します。