Skip to content

Instantly share code, notes, and snippets.

doryokujin doryokujin

Block or report user

Report or block doryokujin

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View td_time_range.sql
boolean TD_TIME_RANGE(int/long unix_timestamp, int/long/string start_time, int/long/string end_time [, string default_timezone = 'UTC'])
-- (例)2013年のデータを取得
SELECT ... WHERE TD_TIME_RANGE(time, "2013-01-01 JST", "2014-01-01 JST")
@doryokujin
doryokujin / gist:1258927
Created Oct 3, 2011
manage rvm and gem using fabric
View gist:1258927
# -*- coding: utf-8 -*-
#
# install: http://morgangoose.com/blog/2011/01/06/using-the-parallel-branch-of-fabric/
# document: http://docs.fabfile.org/en/1.2.0/index.html
#
import os
from fabric.api import *
from fabric.decorators import *
@doryokujin
doryokujin / file0.sql
Last active Dec 11, 2018
『Treasure Data でアクセスログ分析の限界に挑む』その② 〜アクセスに基づいたユーザーセグメントの作成 月次編(アクティビティ)〜 ref: https://qiita.com/doryokujin/items/605158dc61e378685265
View file0.sql
WHERE TD_INTERVAL(time, '-10y/-1M', 'JST') /* 1ヶ月前より過去 */
@doryokujin
doryokujin / file0.sql
Last active Dec 7, 2018
『Treasure Data でアクセスログ分析の限界に挑む』その② 〜アクセスに基づいたユーザーセグメントの作成 月次編(頻度)〜 ref: https://qiita.com/doryokujin/items/d4899269a0c0aa7db6ea
View file0.sql
TD_DATE_TRUNC('day',time,'JST') AS access_day
@doryokujin
doryokujin / file0.sql
Created Dec 6, 2018
『Treasure Data でアクセスログ分析の限界に挑む』その④ 〜アクセスに基づいたユーザーセグメントの作成 月次編(時間帯)〜 ref: https://qiita.com/doryokujin/items/750e3f322c2bc00371ac
View file0.sql
/* TD_SCHEDULED_TIME() = '2018-11-23 11:11:00' */
/*
SELECT target_month, segment, COUNT(1) AS cnt
FROM
(
*/
SELECT target_month,
CASE
WHEN 50<=ratio_freq_sleeping OR 50<=ratio_pv_sleeping THEN 'sleeping'
WHEN 50<=ratio_freq_morning OR 50<=ratio_pv_morning THEN 'morning'
@doryokujin
doryokujin / file0.sql
Last active Dec 5, 2018
『Treasure Data でアクセスログ分析の限界に挑む』その③ 〜アクセスに基づいたユーザーセグメントの作成 月次編(平日/土日)〜 ref: https://qiita.com/doryokujin/items/89392c4cc0bc00c71629
View file0.sql
TD_TIME_FORMAT(time,'u','JST') # 1(月曜日) 〜 7(日曜日)
@doryokujin
doryokujin / file0.sql
Last active Nov 27, 2018
『Treasure Data でアクセスログ分析の限界に挑む』その① 〜「日次」「週次」「月次」の集計を正しく理解する〜 ref: https://qiita.com/doryokujin/items/773f6008e420c7f3260d
View file0.sql
# 基準日 = '2018-11-23 11:11:00'
[2018-11-22 00:00:00, 2018-11-23 00:00:00) # 日次
[2018-11-12 00:00:00, 2018-11-19 00:00:00) # 週次
[2018-10-01 00:00:00, 2018-11-01 00:00:00) # 月次
@doryokujin
doryokujin / book_status.sql
Created Jun 28, 2012
Book-Crossing Dataset
View book_status.sql
-- 3.1.1 出版年別分布 --
td query -w -d book_crossing_dataset "
SELECT year, cnt
FROM
(
SELECT 1975 AS year, COUNT(year_of_publication) AS cnt
FROM books
WHERE year_of_publication < 1970
UNION ALL
View badcase1.sql
SELECT * FROM table1
WHERE
col1 < 100
OR col2 is TRUE
AND TD_TIME_RANGE(time, '2015-11-01')
View badcase1'.sql
-- 元のクエリ
col1 < 100 OR col2 is TRUE AND TD_TIME_RANGE(time, '2015-11-01')
-- 上のクエリは AND が優先的に考慮されるため, 以下のクエリと同義になります。
-- OR によって左右に分解されたこのクエリでは, TD_TIME_RANGE があるにも関わらず, (col1 < 100) の判定のために全件スキャンになります!
(col1 < 100) OR (col2 is TRUE AND TD_TIME_RANGE(time, '2015-11-01')) 
-- クエリ全体に TIME_RANGE 制約を利かす場合は明示的に () を使いましょう!
-- 以下のクエリでは TIME_RANGE 制約内のデータセットで (col1 < 100 OR col2 is TRUE) が判定されます。
(col1 < 100 OR col2 is TRUE) AND TD_TIME_RANGE(time, '2015-11-01')
You can’t perform that action at this time.