読者です 読者をやめる 読者になる 読者になる

FOR SE

文系の学部から新卒でメーカー系のSIerに就職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界に就職

このエントリーをはてなブックマークに追加

【SQL入門】目的別のSQLメモ~集約関数と月別にレコードを取得する~

【今回の紹介】


SQLを勉強中なのでその内容をメモレベルで記載します。


ちなみに今回はこの書籍を使用しながら学習しています。

SQLに関する本は数冊みましたが、これが具体的でわかりやすかったです(初心者目線です)

現場で使えるSQL―Oracle/SQL Server対応 (DB Magazine SELECTION)
現場で使えるSQL―Oracle/SQL Server対応 (DB Magazine SELECTION)



【内容】


~目的別~


■ある列の平均・合計・最大・最少を取得したい。

集約関数を使用する。集約関数とはある項目に対し集計を行うもの。


例)列名があるレコードの件数を調べる

select count(列名) from テーブル名


同様にSUM・AVG・MIN・MAXが使用できる

メモ①カラムがNULLの場合はカウントされないで注意

メモ②MAX・MINは日付にも適用できるようなので、最新や最も古いレコードを取得することもできる
   


   

■月別のある列のデータ数を取得したい。


DATE型またはDATETIME型で月別にレコードをグループ化する必要がある

TO_CAHR()関数又はDATEPART型で抽出し、グループ化を行う


例)

select TO_CHAR(日付,YYYY/MM),count(列名)
  from テーブル名
  group by TO_CHAR(日付,YYYY/MM)

SQLを発行しやすいようにデータ型を変換できる変換関数についてはこちらの記事が分かりやすい

参考

.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }