SQLの学習を行なっています。
Ruby on Railsでは、ActiveRecordという仕組みによって、SQLを直接指定せずともデータを扱う事ができます。
ただ、SQLは開発において必ず必要であるため、SQLコマンドを使ったデータの取り扱いについては出来るようにならなければなりません。
テーブル
songsテーブル
カラム
- name(曲名)
- release_year(発売年)
課題
楽曲の発売年一覧を重複行を削除して取得する。
release_year(発売年)です。
ポイント
"songs"というテーブルから"release_year"という列のデータを重複なく取得する
回答
SELECT DISTINCT release_year
FROM songs;
解説
- SELECTで取得するのは、
release_year
だけで良い。 -
SELECT *
としてしまうと、テーブルすべてのカラムを一覧で取得することになるので、今回のやりたいこととは異なる。 -
DISTINCT
は、SELECT
の対象のデータにおいて、重複する行(レコード)を1つにまとめてくれる。
感想
- 直前にDELETE構文などを学習していたこともあり、deleteを使ってなんとかしようとしていましたが、全然見当違いでした。
- チートシートなどを探すとすぐに分かります(笑)
参考サイト
以下の記事を参考にさせて頂きました。