當前位置:首頁 » 編程語言 » sql連續簽到大於三天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql連續簽到大於三天

發布時間: 2023-02-27 12:00:09

1. sql 語句:一個欄位,連續幾天值大於0,獲得天數 怎麼解決的請教

select * from tb where a = xxx篩選後,難點就是如何判斷是否有3天是連續的
可以將表下移一行後作差比較:
b 錯行 差
1 2011-6-1
2 2011-6-3 2011-6-1 2
3 2011-6-4 2011-6-3 1
4 2011-6-5 2011-6-4 1
2011-6-5
然後再用游標判斷差這一列是否有兩個1是挨著的

或者直接判斷時期是否連續,sqlserver里可以這樣寫

DECLARE @id INT
DECLARE @time DATETIME
DECLARE @tb TABLE (id INT IDENTITY(1,1) ,b DATETIME)
INSERT INTO @tb(b) SELECT b FROM tb ORDER BY b
SELECT @id=MIN(INT_I) FROM @tb
WHILE NOT @id IS NULL BEGIN
SELECT @time = b FROM @tb WHERE INT_I=@id
IF EXISTS(SELECT 1 FROM tb WHERE b = DATEADD(dd,1,@time))
BEGIN
IF EXISTS(SELECT 1 FROM tb WHERE b = DATEADD(dd,2,@time))
BEGIN
PRINT '存在!'
END
END

SELECT @id=MIN(id) FROM @tb WHERE id>@id
END

2. 連續簽到的天數,並排序,求這個sql語句該怎麼寫

這里有一個採用遍歷的方式獲取指定用戶連續簽到的方法分享,

賬號連續簽到天數的獲取

實現思路:採用遍歷循環的方式,依次從大到小的比對用戶是否簽到

如有疑問,及時溝通!

3. 某一個欄位表示一天,怎麼用SQL取連續三天

select begin_dt
from (select begin_dt, count(*) over(partition by ch) cnt
from (select begin_dt,
to_date(begin_dt, 'yyyy-mm-dd') - row_number() over(order by begin_dt) ch
from liur_account)
)
where cnt >= 3;

4. 報表統計連續三天或以上的記錄怎麼寫SQL語句

用你的where條件去控制啊,
思想如下:
select * from table where 星期一遲到了 and 星期二遲到了 and 星期三遲到了

5. sql求解:查詢連續七天以上都有打卡的員工記錄

可以利用一下ORACLE的ROWNUM機制來做點文章,因為它是自增的
我假設有這一張表 WORK
ID,上班日期(DA)
1,20080101
1,20080102
1,20080103
2,20080101
2,20080103
3,20080101
也可能是亂序的
第一步:排序
SELECT * FROM WORK ORDER BY ID, DA
第二步:日期-ROWNUM如果相同的話認為他們是連續的,然後GORUP BY一下
SELECT A.*, TO_NUMBER (A.DA - ROWNUM) DAYS
FROM (SELECT * FROM WORK ORDER BY ID, DA) A
第三步:分別求出連續區間,讓他們相減求出大於6的值
SELECT C.ID
(SELECT B.ID, (MAX (B.DA) - MIN (B.DA)) DAYS
FROM (SELECT A.*, TO_NUMBER (A.DA - ROWNUM) DAYS
FROM (SELECT * FROM WORK ORDER BY ID, DA) A) B
GROUP BY B.ID, B.DAYS) C
WHERE C.DAYS > 7

ITPUB一位高人的辦法得到了啟發

6. 如何用SQL解決連續幾天的問題

統計下用戶最長連續登錄的天數」,「統計下連續登錄超過10天的用戶」,「統計下連續3天交易額超過100W的店鋪

1. 連續兩天購買的用戶

先按照date將一天多次進行去重

row1:按照Date分組,time排序

row2:按照Date和ID分組,time排序

按照ID、row2-row1 分組,重復次數大於1

2. 比如連續2次購買的用戶() 

row1:按照  time排序

row2:按照 ID 分組,time排序

按照ID、row2-row1 分組,重復次數大於1

2. 連續2次購買蘋果的用戶

row1:按照 time排序

row2:按照ID、商品類型分組,time排序

按照ID、商品類型分組,重復次數大於1

3. 連續2次在淘寶購買蘋果的用戶

row1:按照 time排序

row2:按照ID、商品類型、店鋪分組,time排序

按照ID、商品類型、店鋪分組,重復次數大於1