え?なにこの書き方は??
今までただSELECTしてFROMし
WHEREしてORDERしてきた僕にとって
SQLとはこの4つで成り立っていると思っていました。
けど他人のコードを見てみると、結構色んな文があるみたい。
ちょっと調べてみました。
INTERVAL
CURRENT_TIMESTAMPと組み合わせて現在から見た過去と未来を指す事が出来るみたい。
--現在から3日前
SELECT * FROM table WHERE time > CURRENT_TIMESTAMP - INTERVAL 3 DAY
--現在から200秒後
SELECT * FROM table WHERE time > CURRENT_TIMESTAMP - INTERVAL 200 SECOND
UNION
複数のクエリの結果をあわせて出力出来るみたい。
でも合わせる結果のカラムとデータ型があってないとエラーが出てしまう。
SELECT id,name FROM men_table WHERE age < 35
UNION
SELECT id,name FROM woman_table WHERE age < 25
COUNT
クエリの結果を数える事が出来るみたい。
後述のGROUP BYと合わせて使うと幅が広がる。
--tableのレコード数を数える
SELECT COUNT(*) FROM table
--tableのidがnullではないレコードを数える
SELECT COUNT(id) FROM table
GROUP BY
上記のCOUNTと合わせて、セルの内容でカウント出来る。
SELECT age,COUNT(age) FROM table GROUP BY age
編集後記
入社19日目
人のソースコードをみると発見があるので楽しいです。
そしてSQLは見た目に反して奥が深いですね~。
こんな珍しいコマンドあるよ!ってあったらコメントで教えてほしいです!!