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

tsknd的な備忘録

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

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

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

MarkDown

  • OmniMarkupPreviewer

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

  • Markdown Extended

  • Monokai Extende

IMESupport

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

All Autocomplete

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

ConvertToUTF8

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

Diffy

2ファイルを比較する

BoundKeys

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

備忘録

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

SSRS2016 RPlotをレポートに表示する

下記の2つを参考に、RのPLOTの出力をSSRS上で表現できる

SQL Server 2016 R Services: Display R plots in Reporting Services

SQL Server での R コードの使用 (SQL Server R Services)

WHERE句をCASE文で条件分岐、NULL=NULLの対策例

やりたいこと:@P_1が'-'以外の値を取る時は@P_1を採用、それ以外ならwhere句からSpeciesの条件を外す

DECLARE @P1 NVARCHAR(64)
SET @P1 = '-'

SELECT *
FROM Iris
WHERE
ISNULL(Species,'N') = CASE WHEN @P1 <> '-' THEN @P1 ELSE ISNULL(Species,'N') END

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 改行、タブを削除する

select regexp_replace(COLUMNNAME,E'(\r\n|\r|\n|\t)',' ','g') from TABLENAME

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'

シート系メモ

神垣あゆみ著『考えすぎて書けない人のための1分間メール術』読者限定特典

 

■社会人基礎力

www.meti.go.jp

http://www.meti.go.jp/policy/kisoryoku/kisoryoku_image.pdf