SQLデータをソート、グループ化、要約化するための10 Tips
翻訳校正:原井彰弘
データを分析するためにどのようなSQLを構築すればよいか、10個のTipsを紹介する。
分析可能なSQLデータを整えるには、SQL言語の中でも特定の節や演算子の使い方を理解する必要がある。本稿で紹介するTipsでは、望む結果を得るためにはどのようにステートメントを構築すればよいかということを紹介する。
適切な意味を持つようにデータを整えるのはだ。ときには、単純にソートを行うだけでよい場合もある。また、ときにはグループ化を行って分析、要約化する必要がある場合もある。幸い、SQLでは多数の節や演算子が提供されているため、それらを用いてソートやグループ化、要約化を行うことが可能だ。以下に述べるTipsを読めば、いつソートを行うべきか、いつグループ化するべきか、そしていつどのように要約化するべきかが、明確に理解できるようになるだろう。それぞれの節と演算子に関するより詳しい情報はBooks Onlineを参照して欲しい。
#1:ソートによって順番を定める
たいていの場合、データにとって本当に必要なのは順序くらいである。SQLのORDER BY節を用いると、データをアルファベット順もしくは番号順に整理することが可能だ。ソートを行うと、同じ値はグループのようになって同じ場所にソートされるわけだが、その一見グループのように見えるものは単なるソート結果であり、本物のグループではない。ORDER BYではそれぞれのレコードを表示するが、グループは一般に複数のレコードを表すものなのである。
#2:グループ化によって同じ値を除去する
ソートとグループ化の大きな違いは、ソートが(表示レコード数の制限がある場合はその中で)すべてのレコードを表示する一方、グループ化ではすべてのレコードは表示されないということである。GROUP BY節では、同じ値は一つのレコードにまとめられるのだ。以下の例では、GROUP BY節を用いることによって、複数の同じZIPコード(郵便番号)が含まれているテーブルから、重複を取り除いたリストを返している。
SELECT ZIP FROM Customers GROUP BY ZIP
GROUP BYとSELECTのカラムリストには、グループを定義したカラムのみを含めなければならない。つまり、SELECTのリストとGROUP BYのリストは一致させる必要があるのだ。ただし、それには一つ例外があり、SELECTのリストには集約関数を含めることが可能である(GROUP BYでは集約関数は使用できない)。
もう一つ、GROUP BYでは結果のソートは行わないことに注意しておく必要がある。グループをアルファベット順もしくは番号順に並び替えるには、ORDER BY節(#1)を追加する必要がある。また、GROUP BY節ではカラムの別名を参照することはできない。グループ化を行うカラムは、データに含まれているものでなければならないのだ。ただし、結果に関してはそのカラムが含まれていなくても構わない。
#3:グループ化の前にデータを限定する
WHERE節を用いることによって、GROUP BYでグループ化を行うデータを限定することが可能だ。たとえば、以下のステートメントではケンタッキー州の顧客のみを対象として、ユニークなZIPコードをリストとして返している。
SELECT ZIP FROM Customers WHERE State = 'KY' GROUP BY ZIP
ここで重要なのは、WHEREのフィルターはGROUP BY節が評価される前に適用されるということである。
GROUP BYと同様に、WHEREも集約関数をサポートしていない。
- 8人の推薦記事
- 1人がクリップ
-
ソーシャルブックマーク(-)
- トラックバック(5)
- ホワイトペーパー
- 企画特集
中小企業のセキュリティリスクとは?
そのストレージで仮想化に対応できますか?
ロリポップ!がリニューアル
インターネット上の悪意を未然に防ぐには?
仮想環境を実現するソリューション特集
◆エン・ジャパン厳選求人☆毎週更新◆
パンデミック対策特集
御社のログ活用しませんか!?
ストレージメディア特設サイト開設
【徹底対談】運用管理ツールの賢い使い方
集積度も性能も、業界最高水準のブレードPC
今注目の「サジェスト検索」−デモ掲載中
SOA、BPM、SaaS −今、企業に必要なこと
ESBでIT投資の無駄を劇的に解消する
セキュリティ&ユーザ事例【SIer Club】
- ■ストレージ容量50%削減保証■
- エンタープライズにおけるSUSEの強み
- サービス・ドリヴン・データセンター
- サーバー監視・運用のコストを削減するには
- 話題のタグ
Windows 7はLinuxへの切替が簡単:注目の仮想ディスクフォーマット「VHD」
iPhone OS 3.0で変わった「絵文字」
OSSのクラウド基盤「Eucalyptus」を使う(4)--インストール〜ノード構築
俳優経験者が指南する「人前で上手く話すためのティップス10選」
「うるまでるびペイント」登場:絵は上手下手ではなく制作過程に楽しみが
待てば回路の日和あり--「iPhone 3GS」発売、しかし――