tsknd的な備忘録

再利用しそうな資材置き場

Sublime Textに導入したパッケージ

個人的に使えると思ったパッケージ集のメモ書き

MarkDown

  • OmniMarkupPreviewer

    Markdownで書くときにプレビュー

  • Markdown Extended

  • Monokai Extende

IMESupport

日本語をインラインで書けるようにする

All Autocomplete

コード補完を補強するプラグイン

ConvertToUTF8

文字コードをUTF8に変換するプラグイン

Diffy

2ファイルを比較する

BoundKeys

ショートカットキーを確認

備忘録

  • Goolge日本語入力の最新バージョン:2.20.2750.0

1.5Qベースで外れ値フラグを立てるSQLメモ

P1:category1 P2:category2

SELECT DISTINCT
T1.[INDEX],
T1.P1,
T1.P2,
T1.SepalLength,
T2.P25_SL,
T2.P75_SL,
T2.[P75-P25_SL],
T2.QL_SL,
T2.QH_SL,
T1.SepalWidth,
T2.P25_SW,
T2.P75_SW,
T2.[P75-P25_SW],
T2.QL_SW,
T2.QH_SL,
CASE WHEN (T1.SepalLength < T2.QL_SL) OR (T2.QH_SL < T1.SepalLength) THEN '1'
WHEN (T1.SepalWidth < T2.QL_SW) OR (T2.QH_SW < T1.SepalWidth) THEN '2'
ELSE '0'
END
AS OUTLIER
FROM
[NorthwindJ].[dbo].[output] AS T1
INNER JOIN 
(SELECT DISTINCT
P1
,P2
,PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) AS P25_SL
,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) AS P75_SL
,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) - PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) AS 'P75-P25_SL'
,2.5 * PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) - 1.5 * PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) AS QL_SL
, -1.5 * PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) + 2.5 * PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalLength) OVER (PARTITION BY P1,P2) AS QH_SL
,PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) AS P25_SW
,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) AS P75_SW
,PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) - PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) AS 'P75-P25_SW'
,2.5 * PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) - 1.5 * PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) AS QL_SW
, -1.5 * PERCENTILE_DISC(0.25) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) + 2.5 * PERCENTILE_DISC(0.75) WITHIN GROUP (ORDER BY SepalWidth) OVER (PARTITION BY P1,P2) AS QH_SW
FROM [NorthwindJ].[dbo].[output]
) AS T2
ON
T1.P1 = T2.P1
AND
T1.P2 = T2.P2
WHERE T1.SepalLength < T2.QL_SL
OR T2.QH_SL < T1.SepalLength
OR T1.SepalWidth < T2.QL_SW
OR T2.QH_SW < T1.SepalWidth
ORDER BY T1.P1,T1.P2

Postgresql .batから.sqlを実行

■ バッチファイルからsqlを実行する

ここでは、postgresデータベースのirisテーブル、carsテーブルに格納されているデータをcsv形式で出力する。

 

・Sample1.bat

 ☆

@echo off
rem PostgreSQLの場所を指定
set PGPATH=c:\"Program Files"\PostgreSQL\9.5\bin\

rem DB接続情報
rem call c:\"Program Files"\PostgreSQL\9.5\pg_env.bat
set USERID=postgres
set DBNAME=postgres
set HOST=localhost
set PORT=5432

rem ポスグレ接続
%PGPATH%psql -h %HOST% -p %PORT% -U %USERID% -d %DBNAME% -f C:/Users/XXXXX/Desktop/psql/csvout1.sql

exit

 

・csvout1.sql

\COPY (select * from cars) TO 'C:\Users\XXXXX\Desktop\psql\out\cars.csv' (FORMAT csv);
\COPY (select * from iris) TO 'C:\Users\XXXXX\Desktop\psql\out\iris.csv' (FORMAT csv);

 

■実行画面

Sample1.batを実行すると、パスワードが聞かれる。

f:id:tsknd:20160714001831p:plain

 

おまけ

■postgres接続後にSQLを実行する場合

postgres=# \i 'C:/Users/tsk/Desktop/psql/csvout.sql'