質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
GROUP BY

GROUP BYとはSQL文のひとつで、SELECT文において特定の列の値が等しい行ごとに表をグループ化します。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

Q&A

解決済

2回答

977閲覧

group byについての質問

退会済みユーザー

退会済みユーザー

総合スコア0

GROUP BY

GROUP BYとはSQL文のひとつで、SELECT文において特定の列の値が等しい行ごとに表をグループ化します。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

0グッド

0クリップ

投稿2018/05/21 07:53

[顧客]テーブルがあり、それぞれのレコードには [顧客分類コード]というフィールドがあります。

select count(*)

from [顧客]

group by [顧客分類コード]

このクエリで[顧客分類コード]ごとの件数は出せますが、

顧客分類コードが1,3,5,7は「一般顧客」、顧客分類コードが2,4,6,8は「優良顧客」のように、全てのコード単位の件数でなく、条件でグループ分けした件数が知りたいです。

「一般顧客」は何件、「優良顧客」は何件という感じです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

テーブルを直せるんなら
[顧客分類]テーブルを作って一般顧客と優良顧客を値化して連結、集計

顧客分類コード顧客分類名顧客分類グループ
1A一般顧客
2B優良顧客
3C一般顧客
4D優良顧客
5E一般顧客
6F優良顧客
7G一般顧客
8H優良顧客

sql

1select B.[顧客分類グループ],count(*) as 件数 2from [顧客] as A 3 inner join [顧客分類] as B on B.顧客分類コード=A.顧客分類コード 4group by B.[顧客分類グループ] 5order by B.[顧客分類グループ]

個人的にはだけど「顧客の分類ごとに[一般][優良]という区分け」が存在することに
違和感を覚えます…

投稿2018/05/21 08:36

sousuke

総合スコア3828

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/16 00:48

ありがとうございました!
guest

0

ベストアンサー

case式で新たな分類を作成し、その項目に対してグループ化。

SQL

1select [顧客グループ], count(*) 2from ( 3 select case when [顧客分類コード] in (1,3,5,7) then '一般顧客' 4 when [顧客分類コード] in (2,4,6,8) then '優良顧客' 5 end as [顧客グループ] 6 , * 7 from [顧客] 8) as t1 9group by [顧客グループ]

投稿2018/05/21 08:09

sazi

総合スコア25206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/16 00:49

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問