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