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

最大連續次數sql

發布時間: 2023-02-09 11:47:23

㈠ 如何用sql2005語句求表中連續最大個數

第一步:初始化
SELECT 1 AS co1, 'a' AS co2
INTO #a
UNION
SELECT 2, 'a'
UNION
SELECT 11,'a'
UNION
SELECT 12, 'a'
UNION
SELECT 13, 'a'
UNION
SELECT 14, 'a'
UNION
SELECT 15, 'a'
UNION
SELECT 3, 'b'
UNION
SELECT 7, 'b'
UNION
SELECT 8, 'b'
UNION
SELECT 9, 'b'
UNION
SELECT 10, 'b'
UNION
SELECT 4, 'c'
UNION
SELECT 5, 'c'
UNION
SELECT 6, 'c'
第二步:操作
SELECT co2,MAX(counts) counts FROM
(
SELECT rowid,co2,SUM(co1) counts FROM
(
SELECT co1*-1 co1,co2,ROW_NUMBER() OVER (ORDER BY co1) rowid FROM #a a
WHERE NOT EXISTS (SELECT * FROM #a WHERE co1=a.co1-1 AND co2=a.co2)
UNION ALL
SELECT co1+1,co2,ROW_NUMBER() OVER (ORDER BY co1) rowid FROM #a a
WHERE NOT EXISTS (SELECT * FROM #a WHERE co1=a.co1+1 AND co2=a.co2)
) p
GROUP BY rowid,co2
) p1
GROUP BY co2

DROP TABLE #a

你試試吧。
寫的真累。。。望採納。。

㈡ sql 怎實現查詢數據表內出現最多次數的數據

selectdate_format(addtime,'%Y%m%d'),count(date_format(addtime,'%Y%m%d'))fromtb_Parkinginformatiwhere
addtimeBETWEEN'2015-05-0100:00:00'AND'2015-07-0200:00:00'
groupbydate_format(addtime,'%Y%m%d');

不知道你使用的資料庫是什麼類型的,這里提供MYSQL的查詢方法,供你參考一下(盲寫的SQL,可能有一點錯誤,但是大致的方法就是這樣了)

㈢ sql 怎樣查詢每段連續數中的最大值

假設你表中的data_time欄位是日期類型,如果是字元類型,需要對下列語句做修改
sql
server
select
convert(char(8),data_time,112)
日期,max(data_data)
from
table_name
group
by
convert(char(8),data_time,112)
order
by
1
oracle
select
trunc(data_time)
日期,max(data_data)
from
table_name
group
by
trunc(data_time)
order
by
1
;
按照你的要求的話是不是要保留每條記錄,然後每條記錄再顯示出當日的最大值?
如果是這樣,sql
server中需要原表和每日的最大值的嵌套表做關聯;oracle用分析函數,下面是oracle的語句
select
to_char(data_time,'yyyy-mm-dd
hh24:mi:ss')
時間,
data_data
"當前值",
max(data_data)
over(partition
by
trunc(data_time))"當日最大值"
from
table_name
order
by
1;

㈣ sql svrver 如何查詢連續有數據最多的天數

select 數據,count(*) as 連續出現次數 from table as t where exists(select 1 from table as a where a.數據=t.數據 and (a.日期=t.日期+1 or a.日期=t.日期-1)) group by 數據

㈤ 請教查詢MYSQL,最大連續數的SQL寫法

下面SQL代碼假設表名為T,運行時請將表名T更改為實際表名,其它地方請不要動。這段代碼已經實測通過。上機試試吧! SELECT T.* FROM T INNER JOIN (SELECT NAME FROM (SELECT NAME,COUNT(*) AS QTY FROM T GROUP BY NAME)A WHERE A.QTY>1)B ON T.NAME=B.NAME ORDER BY T.NAME,T.ID 說明:這段代碼看上去雖然比較復雜,盡管有其它比較簡單的寫法,但是我覺得這個寫法在表數據量較大時效率會更高一些。 再給一個稍微簡單的寫法,其效率也差不多。 SELECT T.* FROM T, (SELECT NAME FROM T GROUP BY NAME HAVING COUNT(*)>1)A WHERE T.NAME=A.NAME ORDER BY T.NAME, T.ID; 你的問題「查詢一張表中 欄位A 相同的記錄數大於1條的記錄」 -- 我認為有一點筆誤,因為在你提供的表中沒有叫做「A」的欄位,所以我上面的答案是基於問題「查詢一張表中 欄位NAME 相同的記錄數大於1條的記錄」而做出的。 如果你問題的實際要求是「查詢一張表中 欄位NAME 等於A,且其記錄數大於1條的記錄」那麼只要對我上面的SQL語句加一個「Where」操作符就可以解決。以第二個SQL語句為例,這樣寫: SELECT T.* FROM T, (SELECT NAME FROM T WHER NAME='A' GROUP BY NAME HAVING COUNT(*)>1)A WHERE T.NAME=A.NAME ORDER BY T.NAME, T.ID 尊敬的「冰風舞雨」先生如果你覺得我的回答無聊,請投訴並刪除本人的作答。作為一個認真的答題者,總是希望提問者能給一個回復,不管評價是好還是壞。 ~