當前位置:首頁 » 編程語言 » sql按小時為單位統計
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql按小時為單位統計

發布時間: 2022-03-01 06:42:58

sql 按照小時分組查詢並統計

--模擬銷售的表.
CREATETABLE#temp(
[銷售時間]datetime,
[銷量]int,
[實銷]int
)
go


--由於成本與毛利,我估計應該是在另外一個表裡面的,這里就不模擬了
INSERTINTO#temp
--9點的
SELECT'2013-07-1609:55:15',9,900UNIONALL
--10點的
SELECT'2013-07-1610:15:15',1,100UNIONALL
SELECT'2013-07-1610:25:15',15,1500UNIONALL
SELECT'2013-07-1610:35:15',10,1000UNIONALL
--11點的
SELECT'2013-07-1611:15:15',1,100UNIONALL
SELECT'2013-07-1611:25:15',2,200UNIONALL
SELECT'2013-07-1611:35:15',3,300UNIONALL
SELECT'2013-07-1611:45:15',4,400UNIONALL
SELECT'2013-07-1611:55:15',5,500UNIONALL
--其他的.
SELECT'2013-07-1612:15:15',12,1200UNIONALL
SELECT'2013-07-1613:15:15',13,1300UNIONALL
SELECT'2013-07-1614:15:15',14,1400UNIONALL
--中間缺少15點與16點的
SELECT'2013-07-1617:15:15',17,1700UNIONALL
SELECT'2013-07-1618:15:15',18,1800;
goSELECT
ISNULL(Convert(varchar(2),sv.number)+'-'+Convert(varchar(2),sv.number+1),'合計')AS[銷售時段],
SUM([銷量])AS[銷量],
SUM([實銷])AS[實銷],
(SELECTSUM([實銷])FROM#tempt2WHEREDATEPART(hh,t2.[銷售時間])<=ISNULL(sv.number,23))AS[累計實銷]
FROM
master..spt_valuessv
JOIN#tempt
ON(sv.number=DATEPART(hh,t.[銷售時間]))
WHERE
sv.type='P'
ANDsv.number>=9
ANDsv.number<20
GROUPBY
sv.numberWITHrollup
GO


銷售時段銷量實銷累計實銷
--------------------------------------
9-109900900
10-112626003500
11-121515005000
12-131212006200
13-141313007500
14-151414008900
17-1817170010600
18-1918180012400
合計1241240012400

(9行受影響)




這樣行么?

❷ sql按日期時間統計次數的語句怎麼寫

select 卡號, count(消費日) 消費天數
from (select distinct 卡號, Day(消費時間) 消費日 from 消費明細)
GROUP by 卡號

❸ sql中的步長統計,例如一天跑一次的sql腳本,要實現按小時步長來統計數據

樓主表達不清晰,
按小時執行用JOB,查看腳本執行時間
SET STATISTICS TIME ON
顯示剖析、編譯和執行每個陳述式所需要的毫秒數。

❹ mysql根據時間段查詢按小時統計

這個要有個前提的
要求你那個 MySQL 裡面, time 那一列的數據類型, 是 DATETIME 或者 TIME
如果數據類型是 DATE , 那就徹底沒辦法了:

註:MySQL 日期時間數據類型

DATE
日期。支持的范圍為』1000-01-01』到』9999-12-31』。
MySQL以』YYYY-MM-DD』格式顯示DATE值,但允許使用字元串或數字為DATE列分配值。

DATETIME
日期和時間的組合。
支持的范圍是』1000-01-01 00:00:00』到』9999-12-31 23:59:59』。
MySQL以』YYYY-MM-DD HH:MM:SS』格式顯示DATETIME值,但允許使用字元串或數字為DATETIME列分配值。

TIME
時間。范圍是』-838:59:59』到』838:59:59』。
MySQL以』HH:MM:SS』格式顯示TIME值,但允許使用字元串或數字為TIME列分配值。

SQL 語句的 WHERE 部分可以這么寫

WHERE
Hour( time ) = 1
OR ( Hour( time ) = 2 AND MINUTE( time) = 0 AND Second (time ) = 0 )

❺ sql查詢一天每個小時的數據量的統計語句怎麼寫

with data as
( select 時間, convert(int, 第二列) as 小時, 數量 from 表格)
select 時間, 小時, sum(數量)
from data
group by 時間, 小時

❻ 請教如何用SQL對每個小時內的數據進行統計求高手指點,謝謝!

select '2011-01-23 00:23:34' 日期 ,'a' 內容 into #temp union
select '2011-01-23 00:35:31','a' union
select '2011-01-23 02:44:34','a' union
select '2011-01-23 02:52:12','b' union
select '2011-01-23 04:23:34','c' union
select '2011-01-23 04:11:03','d' union
select '2011-01-23 04:05:34','c' union
select '2011-01-23 05:23:21','b'

select convert(varchar(13),日期,120),count(內容)
from #temp
group by convert(varchar(13),日期,120)

select convert(varchar(13),日期,120),count(distinct 內容)
from #temp
group by convert(varchar(13),日期,120)

❼ sql 按時間統計

當然可以;
用行轉列就行了

--靜態寫法
select 單位,
sum(case when year(時間)=2005 and datepart(q,時間)=1 then 值 else 0 end) as 2005一季,
sum(case when year(時間)=2005 and datepart(q,時間)=2 then 值 else 0 end) as 2005一季,
..........
from table
group by 單位

豎向顯示時;

select 單位,
case when year(時間)=2005 and datepart(q,時間)=1 then '2005年第一季'
when when year(時間)=2005 and datepart(q,時間)=2
then '2005年第二季'
..........end as 顯示季,
sum(值) as 顯示值
from table
group by 單位,case when year(時間)=2005 and datepart(q,時間)=1 then '2005年第一季'
when when year(時間)=2005 and datepart(q,時間)=2
then '2005年第二季'
..........end

❽ 求一個按小時篩選的sql語句

以一小時為一組:
select * from 表名 where 時間列名稱 > dateadd(Hour,-1,getDate())

❾ sql查詢如何按每個小時查詢那個時間段的總數

1、新建JUnit test。

❿ SQL 統計 一段時間 按每小時統計 記錄的數量

select count(distinct id) cnt , substr(time,1,13) hours
from mytable a
group by substr(time,1,13)
order by 2
;