4USFBNTʹॻ͖ࠐΈ w -BNCEBͰϩάϑΝΠϧͷόϦσʔγϣϯͯ͠ɺਖ਼ৗͳϨίʔυͷΈ,JOFTJT 'JSFIPTF࿈ܞͭͭ͠ɺੜϩάΛ4ʹόοΫΞοϓ w ,JOFTJT'JSFIPTFͰ3FETIJGUʹ$01: w ΞϓϦέʔγϣϯ͔ΒϩάΛ'JSFIPTFʹૹΒͣʹ4UFBNT-BNCEBΛڬΜ Ͱ͍ΔͷɺϩάͷόϦσʔγϣϯ͍ͨ͠ͷͱɺ'JSFIPTFετϦʔϜ͋ͨ ΓѼઌͷςʔϒϧ͕ͭͰɺߏͷॊೈੑ͕͋Μ·Γͳ͍ͷͰɻ
on \set ON_ERROR_STOP false drop table active_users_daily_old cascade; .... -- active_users.ct CREATE TABLE active_users_daily_wk ( day date not null, .... -- active_users.sql INSERT INTO active_users_daily_wk SELECT date_trunc('day', jst_visited_on)::date AS day, .... ESZSVOͰੜ͞ΕΔ42-จ͕֬ೝͰ͖Δ
͑ͨϏϡʔࣗಈͰݟ͑ΔΑ͏ʹ͢Δʹ"-5&3%&'"6-513*7*-&(&4ʙ͕ඞཁ w NBTLFE@WJFXFST࣮ςʔϒϧͷଘࡏ͢ΔVONBTLFEεΩʔϚͷ64"(&͕ඞཁ w ۩ମతͳ42-एׯࡶͳͷͰɺ࣮ৄࡉ2JJUBʹॻ͍ͨ w 3FETIJGUͰςʔϒϧͷ࣮ମΛݟͤͣʹϏϡʔ͚ͩݟͤͯΞΫηε੍ݶ͍ͨ͠ IUUQTRJJUBDPNNJOBNJKPZPJUFNTDCB
$MPVE8BUDI͔Β%BUBEPHͷެࣜΠϯςάϨʔγϣϯͰϝτϦΫε͛ͯࢹ w 3FETIJGUͷγεςϜϏϡʔʹఆظతʹ42-࣮ߦͨ݁͠ՌΛ%BUBEPHʹϝτϦΫε ͛ͯࢹ w 'MZ%BUBͷಉظݩ%#ʹγεςϜλΠϜελϯϓςʔϒϧΛ࡞ͬͯDSPOͰʹ ճ61%"5&ͯ͠ɺఆظతʹ3FETIJGUͰݱࡏ࣌ࠁͱൺֱͯ͠ԆΛ%BUBEPHͰࢹ w ఆظతʹ42-Λ࣮ߦͯ͠%BUBEPHʹ͚͛ͭΔDZRMEPHͱ͍͏πʔϧΛ࡞ͬͨ
'no' WHEN 1 THEN 'yes' END) AS aborted, COUNT(*) AS count, NVL(MIN(DATEDIFF(us, q.starttime, q.endtime)), 0) AS min, NVL(MAX(DATEDIFF(us, q.starttime, q.endtime)), 0) AS max, NVL(AVG(DATEDIFF(us, q.starttime, q.endtime)), 0) AS avg, NVL(MEDIAN(DATEDIFF(us, q.starttime, q.endtime))::integer, 0) AS median FROM stl_query q, pg_user u WHERE q.userid = u.usesysid AND q.endtime > (SYSDATE - interval '5m') GROUP BY q.userid, q.aborted, u.usename; username | aborted | count | min | max | avg | median -------------------------+---------+-------+----------+----------+----------+---------- hoge | no | 1 | 12725416 | 12725416 | 12725416 | 12725416 hoge | yes | 1 | 9176396 | 9176396 | 9176396 | 9176396