pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

按日期或時(shí)間順序查看分組記錄.可能是按級別分

View grouped records in a date or time sequence. Possibly a log table grouped by level(按日期或時(shí)間順序查看分組記錄.可能是按級別分組的日志表)
本文介紹了按日期或時(shí)間順序查看分組記錄.可能是按級別分組的日志表的處理方法,對大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

假設(shè)您的 SQL Server(目前是 SQL Server 2008)數(shù)據(jù)庫中有一個(gè)如下所示的表:

Say you had a table in your SQL Server ( prensently SQL Server 2008) database that look like this:

Date                    Id State
=================================
2013-09-12 15:02:41,844 1 OK
2013-09-12 15:02:41,844 2 OK
2013-09-12 15:02:41,844 3 ERROR
2013-09-12 15:02:41,844 4 ERROR
2013-09-12 15:02:41,844 5 ERROR
2013-09-13 15:02:41,844 1 ERROR
2013-09-14 15:02:41,844 1 OK
2013-09-15 15:02:41,844 1 ERROR
2013-09-15 15:02:41,844 2 ERROR

表的目的是保存記錄狀態(tài).我寫了這張表,但現(xiàn)在我不知道如何查詢它以獲得時(shí)間序列中不同狀態(tài)的概覽.

The purpouse of the table is to save records state. I wrote this table but now i cannot figure out how to query it for an overview of the different states during a time sequence.

我正在尋找的結(jié)果是:

2013-09-12 16:00:00 OK 2
2013-09-12 16:00:00 ERROR 3
2013-09-13 16:00:00 OK 1
2013-09-13 16:00:00 ERROR 4
2013-09-14 16:00:00 OK 2
2013-09-14 16:00:00 ERROR 3
2013-09-15 16:00:00 OK 0
2013-09-15 16:00:00 ERROR 5

編輯:我想要實(shí)現(xiàn)的是我的對象狀態(tài)的日常視圖.哪些對象有錯(cuò)誤,哪些沒問題.也許車庫是一個(gè)更好的例子,但我會堅(jiān)持這個(gè).

EDIT: What i am trying to achieve is a day-by-day view of the state of my objects. which objects has an error and which ones are ok. Maybe a garage would be a better example, but i will stick to this.

  • 12 日,3 個(gè)對象出現(xiàn)錯(cuò)誤,2 個(gè)對象正常.
  • 在 13 日,一個(gè)對象從 OK 變?yōu)?Error.我現(xiàn)在有 4 個(gè)對象處于 ERROR 狀態(tài),一個(gè)正常.
  • 在 14 日,我的 ID 為 1 的對象已修復(fù),現(xiàn)在我又回到了兩個(gè)正常的對象和三個(gè)具有錯(cuò)誤狀態(tài)的對象

我已經(jīng)想出了(找到)如何像這樣生成日期序列(不使用變量聲明):

I have figured out (found) how to generate a sequence of dates (without using variable declarations) like this:

;WITH dates
AS (
    SELECT CAST('2013-12-17 16:00:00' AS DATETIME) 'date'

    UNION ALL

    SELECT DATEADD(dd, 1, t.DATE)
    FROM dates t
    WHERE DATEADD(dd, 1, t.DATE) <= GETDATE()
    )
SELECT dates.DATE   
FROM dates

而且我有一個(gè)查詢,它執(zhí)行相關(guān)分組(我認(rèn)為)以提供所需的輸出(和點(diǎn)):

And i have a query that does the relevant grouping (i think) that delivers a desired output (and point):

Date State Count(state)
=======================    
2013-09-12 16:00:00 OK 2
        2013-09-12 16:00:00 ERROR 3
        2013-09-13 16:00:00 ERROR 1
        2013-09-14 16:00:00 OK 1
        2013-09-15 16:00:00 ERROR 1

那么問題是,你如何將日期序列與我的分組結(jié)果結(jié)合起來以達(dá)到預(yù)期的結(jié)果.

So the question is, how do you marry the sequence of dates to my grouping result to achieve the desired result.

推薦答案

通過 SQL Server 2012 提供的窗口函數(shù),您可以使用以下查詢:

With SQL Server 2012 providing window functions you can use the following query:

SELECT date,
       sum(ok_mod) over (order by date) as ok
FROM (
  SELECT date,
         sum(case when state = 'OK' then 1
                  when state = 'ERROR' and prev_state is not null then -1
                  else 0
             end) as ok_mod
  FROM (
    SELECT date, id, state,
           lag(state) over (partition by id order by date) prev_state
    FROM data
  ) AS data
  GROUP BY date
) AS data
ORDER BY date;

這僅給您 OK 部分,但您也可以輕松地將 ERROR 部分的相應(yīng)查詢聯(lián)合起來.SQL Fiddle 此處.

This gives you only OK part, but you can easily union corresponding query for ERROR part also. SQL Fiddle here.

使用 2008 版本恕我直言,如果沒有過程或非常復(fù)雜的查詢,您將無法實(shí)現(xiàn).

With 2008 version imho you won't make it without a procedure or really complex query.

這篇關(guān)于按日期或時(shí)間順序查看分組記錄.可能是按級別分組的日志表的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Modify Existing decimal places info(修改現(xiàn)有小數(shù)位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關(guān)名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運(yùn)算符字符串中刪除重復(fù)項(xiàng))
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關(guān)系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 耐压仪-高压耐压仪|徐吉电气| 河北中仪伟创试验仪器有限公司是专业生产沥青,土工,水泥,混凝土等试验仪器的厂家,咨询电话:13373070969 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 液氮罐_液氮容器_自增压液氮罐_杜瓦瓶_班德液氮罐厂家 | 设计圈 - 让设计更有价值!| 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 密封圈_泛塞封_格莱圈-[东莞市国昊密封圈科技有限公司]专注密封圈定制生产厂家 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 篮球架_乒乓球台_足球门_校园_竞技体育器材_厂家_价格-沧州浩然体育器材有限公司 | 信阳市建筑勘察设计研究院有限公司 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 老城街小面官网_正宗重庆小面加盟技术培训_特色面馆加盟|牛肉拉面|招商加盟代理费用多少钱 | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 气力输送设备_料封泵_仓泵_散装机_气化板_压力释放阀-河南锐驰机械设备有限公司 | EFM 022静电场测试仪-套帽式风量计-静电平板监测器-上海民仪电子有限公司 | 标策网-专注公司商业知识服务、助力企业发展| 光照全温振荡器(智能型)-恒隆仪器 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 塑木弯曲试验机_铜带拉伸强度试验机_拉压力测试台-倾技百科 | 智能电表|预付费ic卡水电表|nb智能无线远传载波电表-福建百悦信息科技有限公司 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | LED灯杆屏_LED广告机_户外LED广告机_智慧灯杆_智慧路灯-太龙智显科技(深圳)有限公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 万博士范文网-您身边的范文参考网站Vanbs.com | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 全自动实验室洗瓶机,移液管|培养皿|进样瓶清洗机,清洗剂-广州摩特伟希尔机械设备有限责任公司 | 2025第九届世界无人机大会| 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 |