❶ 有一個表,存用戶的登錄時間和IP,寫sql語句取某一天每小時的登錄人數。如(0-1,1-2,....23-24)
----------不考慮IP重復的問題------------------
select DATEPART ( hour,<時間>) ,count(*) from <表>as s group by DATEPART ( hour,<時間>) ;
--------考慮IP重復問題-----------
select hournum,count(*) from (select DATEPART ( hour,<時間>) as hournum,<IP> from <表>) group by hournum
如果還要考慮某一天,那就加上where子句限定日期
❷ sql 查詢每天都有登錄的人
提供個思路。就是先查出一周內的扮蔽用戶。然敏缺態後按天,人分組。按條件統計
例如 select count(日期),人名 from 表 where 時間=一周橋源的 group by 人 having coutn(日期)>5
❸ 每一天的新用戶的次日留存率,這個SQL應該怎麼處理
1select ( select count(distinct userid ) from 登錄表 where 登錄時間 = 今天 ) / ( select count(1) from 注冊表 where 注冊時間 = 昨天 ) as 戶留存率
❹ 如何sql計算用戶分層:新增、活躍、新召回、新沉默、持續沉默
第一天:
INSERT INTO user_status AS
SELECT 『2019-01-01』 AS date, driver_id, 『族模New』 AS status
FROM record
WHERE date = 『2019-01-01』
GROUP BY 1;
從第二天開始, 每天和前一天的status比較
CREATE OR REPLACE TEMPORARY TABLE today_active AS
SELECT uid
FROM record
WHERE date = 『<TODAY>坦御』
GROUP BY 1;
CREATE OR REPLACE TEMPORARY TABLE yesterday_status AS
SELECT uid, status
FROM user_status
WHERE date = day_add(<TODAY>讓穗岩, -1)
AND status IN (『Active』, 『Resurrected』, 『New』, 『Churned』, 『Stale』);
INSERT INTO user_status AS
SELECT
『<TODAY>』 AS date,
COALESCE(t.uid, y.uid) AS uid,
CASE WHEN t.uid IS NOT NULL AND y.status IS NULL THEN 『New』
WHEN t. uid IS NOT NULL AND y.status IN (『Churned』, 『Stale』) THEN 『Resurrected』
WHEN t.uid IS NOT NULL AND y.status IN (『New』, 『Resurrected』, 『Active』) THEN 『Active』
WHEN t.uid IS NULL AND y.status IN (『Churned』, 『Stale』) THEN 『Stale』
WHEN t.uid IS NULL AND y.status IN (『New』, 『Resurrected』, 『Active』) THEN 『Churned』
ELSE NULL END AS status
FROM today_active t FULL OUTER JOIN yesterday_status y
ON t.uid = y.uid;
這樣的結果, 最後會逐漸得到一個名叫user_status的表, 裡面記錄每一天每一個用戶的status.
❺ sql怎麼獲取每個用戶,最新的一次登陸數據
select 用戶id,max(時間) from tablename group by 用戶id。
這樣就能獲取每個用戶最新一次登錄的數據
❻ SQL查詢--查詢用戶每個用戶的最後一次登錄記錄
1、創建測試升沖凱表,
create table test_log(user_id number, v_date date);
❼ SQL查詢是否是老客戶
思路是先查兄陪老客戶的,再查新客戶的,最後啟薯把兩個結果合並
select A.客戶姓名,1 from A,B where A.ID=B.ID and B.消費日期 BETWEEN 開始日期 and 結束日期
union all
select A.客戶姓名,0 from A where A.ID not in (select B.ID from B where B.消費日期 BETWEEN 開悄塵者始日期 and 結束日期)