当前位置:首页 » 编程语言 » 最大连续次数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 尊敬的“冰风舞雨”先生如果你觉得我的回答无聊,请投诉并删除本人的作答。作为一个认真的答题者,总是希望提问者能给一个回复,不管评价是好还是坏。 ~