by shigemk2

当面は技術的なことしか書かない

SQL

inner join / outer join

SQL

この図がとてもわかり易かった。 出典: Visual Representation of SQL Joins - CodeProject stackoverflow.com

hive memo group by

SQL

本当にメモ。 asで定義したエイリアスはgroup byでは使えない。特に、case when/when.... else endってやっているときは、case/whenのブロックをそのままgroup byまで持っていく必要がある。 stackoverflow.com

hive cli

SQL

impalaでいうと、-iに相当するものはあるが、-oに相当するものはない。ので、CSV出力したい場合は自前でどうにかしないといけない。 LanguageManual Cli - Apache Hive - Apache Software Foundation

glossary: Joe Celko's Trees and Hierarchies in SQL for Smarties, 2nd Edition

SQL

用語 英語 内容 ノード Node 点/頂点 エッジ Edge 線 有向グラフ Directed graph 方向を持つグラフ 無向グラフ Undirected graph 方向を持たないグラフ グラフの位数 Order of Graph グラフに含まれるノードの個数 次数 Degree あるノードに接合するエッジの…

impala-shell

SQL

impalaのCLIコマンド。 impala-shell -f input.sql -B -o ~/output.csv みたいな使い方。 Using the Impala Shell (impala-shell Command)

Hiveの窓関数

SQL

窓関数 Hive Date Functions – Hadoop Online Tutorials

redshiftのstl_load_errors

SQL

こんなエラーが出た時は ERROR: Load into table 'users' failed. Check 'stl_load_errors' system table for details. \d stl_load_errors; して、 SELECT starttime, TRIM(colname), err_code, TRIM(err_reason) FROM stl_load_errors ORDER BY starttime …

今日のSQL

SQL

SUMとCASEのコンボ 自分には使いこなせないので。出来れば1SQLでどうにかしたいけど、普通にシェルで2回実行するように命令を書けばいいのではないかという悟りを得る MySQLでの条件付きSUM,COUNTkontany.net 月ごと集計 こういう書き方があるのは知らなか…

今日のSQL芸

SQL

psqlでCSV出力 psql データベース名 -c "SQL文" -A -F, -t > CSVファイル名 -A 桁揃えしない -F 区切り文字指定 -t カラム名除去 PostgresqlでコマンドラインからCSV出力knowledge.reontosanta.com psqlでパスワード入力したくない mysqlでいうところの-pオ…

SQLのチートシートリンク

SQL

updateってどう書くんだっけ?みたいなググりをいい加減撲滅するために、ちょっとだけ資料を揃えたかった。 http://www.cheat-sheets.org/saved-copy/sqlcheetsheet.pdf

UNION

SQL

unionでselect文の結果をつなげる。 orderbyは最後で。途中でorder by やるとえらる。 select * from hogehoge where id = 1 union select * from hogehoge where id = 2 union select * from hogehoge where id = 3 union select * from hogehoge where id …

check similar to

SQL

SIMILAR TO正規表現 string SIMILAR TO pattern [ESCAPE escape-character] string NOT SIMILAR TO pattern [ESCAPE escape-character] こんなふうに使う。 CREATE TABLE Foobar (all_alpha VARCHAR(6) NOT NULL CHECK (all_alpha SIMILAR TO '[a-zA-Z]+') )…

union

SQL

結果の結合。 SELECT P1.proc_id, P2.proc_id, P1.anest_name, P2.start_time, +1 FROM Procs AS P1, Procs AS P2 WHERE P1.anest_name = P2.anest_name AND NOT (P2.end_time <= P1.start_time OR P2.start_time >= P1.end_time) UNION SELECT P1.proc_id, …

create view

SQL

テーブルまたは、既存ビューに対するビュー(見せかけ) のようなものをつくる where 句による抽出条件も指定できるが、order by 句によるソート条件などは指定できない 削除するときはdrop view SQL 基礎編 (その二) ビュー操作 create view、select、drop vi…

where exists

SQL

サブクエリの結果が真のときにレコードが抽出される。 SELECT * FROM Absenteeism WHERE EXISTS (SELECT * FROM Absenteeism AS A2 WHERE Absenteeism.emp_id = A2.emp_id AND Absenteeism.absent_date = (A2.absent_date + INTERVAL '1' DAY));

LISTAGGで結果を横並び的に連結さす

SQL

LISTAGGを使う。 LISTAGG(集計関数) - オラクル・Oracle SQL 関数リファレンス select LISTAGG(size, ',') WITHIN GROUP (order by id) SIZE from DATA where ID = 2006; 感覚的には、 1,2,3,4 みたいな並びになると思う。 なお、withinは必須。

サブクエリ複数行参照

SQL

サブクエリって基本的に一つの結果しか参照できないように見えるけど、 それは select * from HOGEHOGE where id = (select id from FUGAFUGA); とかやった場合。 サブクエリで複数の結果がかえってくることが予想される場合は、INを使う。 select * from HO…

SQL plus

SQL

SQL*Plus - オラクル・Oracle SQL*Plus リファレンス