Ⅰ sql 分組 求累計值
UPDATE table1
SET 目前為止合計 = (SELECT SUM(數量) FROM Table1
WHERE(日期 <= table1.日期))
sql2005下
運行前數據
日期 數量 目前為止合計
2008-01-01 2
2008-01-02 3
2008-01-09 4
運行後數據
日期 數量 目前為止合計
2008-01-01 2 2
2008-01-02 3 5
2008-01-09 4 9
-----------------------------------------------------------------------------------
查詢:
SELECT Table1.日期, Table1.數量, temp.目前為止合計
FROM Table1 INNER JOIN (SELECT t2.日期, SUM(t1.數量) AS 目前為止合計 FROM Table1 AS t1 INNER JOIN Table1 AS t2 ON t1.日期 <= t2.日期 GROUP BY t2.日期) AS temp ON Table1.日期 = temp.日期
Ⅱ SQL每日累計
select t1.日期,
t1.每日產量,
(select sum(t2.每日產量)
from yourtable t2
where substr('t2.日期', 1, 1) <= substr('t1.日期', 1, 1)) as 累計產量
from yourtable t1
Ⅲ SQL 累計 查詢 求 語句
select t1.*, (select sum(日收入的欄位) from (select * from 表名 where 姓名欄位=t1.姓名欄位 and 日期欄位<=t1.日期欄位) ) as 累計收入 from 表名t1
你把上面的漢字替換成你的表的,試試應該可以了
Ⅳ sql按日期統計
思路:先建一個中間表 sys_date(s_date var(8))
接著,把每天數據插入。
最後進行關聯查詢。
查詢實例:
SELECT nvl(CONVERT(VARCHAR(20), TIME, 112),0), COUNT(IP)
FROM WEB_USER join sys_date on CONVERT(VARCHAR(20), TIME, 112)=sys_date.s_date
where sys_date.s_date >='20100101'
and sys_date.s_date <='20100131'
GROUP BY CONVERT(VARCHAR(20), TIME, 112)
ORDER BY CONVERT(VARCHAR(20), TIME, 112)
Ⅳ 請問一下,SQL按日期查詢,查詢每一天之前的金額總和
按天累計么?
select 日期, (select sum(金額) from tb where 日期<t.日期) 日累計金額
from tb t
Ⅵ 怎麼用SQL實現日期區間遍歷每天數據
以下可以達到你的要求不?
SQL code
?
SELECT 開始日期
,結束日期
,用戶ID
,工作內容
FROM 基礎數據
,(SELECT TO_DATE('2010/12/01', 'YYYY/MM/DD') + ROWNUM - 1 DAY_DATE FROM DUAL CONNECT BY ROWNUM < 32) DT
WHERE 基礎數據.開始日期 = DT.DAY_DATE
Ⅶ sql求每日登陸用戶號碼去重後的累計值
你給的例子看不明白,按照你的意思是176號碼在11號登陸了,那麼12號和7月6號就不會再統計,那麼186號碼,5月12日登陸了,7月6日應該也不統計,那麼7月6日的結果應該是3,也就是132,156,138三個號碼,其他的號碼都出現過。
而且5月12日的UV為什麼是3,沒看懂。
按照你的說法,我嘗試著寫了一個
select 手機號,min(時間去掉時分秒) 第一次出現 from table group by 手機號
這個語句能計算出這個手機號第一次出現的時間,然後在這個語句的基礎上再套一層根據第一次出現時間去分組計數就可以了(如果是要計算每天的UV值的話)
如果是計算當天的,或者某一天的,那麼
select 手機號 from table group by 手機號 having min(時間去掉時分秒) =『某一天』
這樣就能寫出某一天的全部手機號,然後再count就可以了。
這里是在oracle資料庫的寫法,其他資料庫寫法可能不同。
Ⅷ sql按日期時間統計次數的語句怎麼寫
select 卡號, count(消費日) 消費天數
from (select distinct 卡號, Day(消費時間) 消費日 from 消費明細)
GROUP by 卡號
Ⅸ sql查詢按時間累計
做是可以做出來,我暫時沒考慮優化的問題。
我用的是Oracle資料庫,有些函數和寫法可能資料庫產品之間不太一樣,沒辦法了。
首先創建一個表:
indexof Varchar2
dateof Date
feeof Number
然後插入測試數據:
insert all
into test08 values('A',to_date('2009-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss'),1)
into test08 values('B',to_date('2010-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),2)
into test08 values('A',to_date('2010-02-08 00:00:00','yyyy-mm-dd hh24:mi:ss'),3)
into test08 values('B',to_date('2010-03-09 00:00:00','yyyy-mm-dd hh24:mi:ss'),4)
into test08 values('A',to_date('2009-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),5)
into test08 values('A',to_date('2012-03-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),38)
select * from al
然後這個表就和你那個差不多了
A 2009-05-02 00:00:00 1
B 2010-01-01 00:00:00 2
A 2010-02-08 00:00:00 3
B 2010-03-09 00:00:00 4
A 2009-03-01 00:00:00 5
A 2012-03-01 00:00:00 38
稍微多了幾個主要是測試用。
然後查詢你需要的:
select t1.indexof as indexof,t1.dateof as 日期,t1.feeof as 當期費用,
(
select sum(t2.feeof) from test08 t2
where t2.dateof<=t1.dateof
and t2.dateof>=trunc(t1.dateof,'yyyy')
and t2.indexof=t1.indexof
) as 本年度累加,
(
select sum(t2.feeof) from test08 t2
where t2.dateof<=t1.dateof
and t2.indexof=t1.indexof
) as 總累加
from test08 t1
order by dateof
注意:trunc函數是Oracle資料庫函數,是取當前日期的年份的。
order by dateof如果不需要可以刪除。有什麼不明白的地方可以直接M我。