❶ 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
;