求助: 面對 千萬級別的數(shù)據(jù) 進行統(tǒng)計,誰有解決方案? 過程:一個表,表有70列,3千萬行, 先用where篩選 可能 還有 5個左右like查詢,group by 三個列,得到新的table,再對這個table 進行至少2層嵌套的sum,count等.求答案.先謝謝了.1)原表3千萬行, where篩選出來的就有500萬行~800W.再對這個結(jié)果進行至少2次嵌套統(tǒng)計, 中間統(tǒng)計我想過了,但因為提交的數(shù)據(jù)是有范圍的,即范圍和條件不固定.無規(guī)律可找,所以沒法提前處理數(shù)據(jù),只有等客戶提交條件后才能方向統(tǒng)計2)下面是一條sqlexec('SELECT CASE WHEN 參與評價處方數(shù) IS NULL THEN 0 Case這里省略10個Caseinto ['+@OldTable+']from(SELECTCOUNT(1) as 參與評價處方數(shù),SUM(YPZS) as 用藥品種總數(shù),這里省掉10個以上sumSUM(JZKJYCFCS) AS 急診患者抗菌藥處方數(shù)FROM(SELECT VISIT_DATE AS CFRQ, PATIENT_ID AS BRBS, ORDERED_BY AS KSDM,COUNT(1) YPZS,SUM(CASE WHEN DNDCID IS NOT NULL THEN 1 ELSE 0 END) AS TYMCS,下面省掉10個以上sumAS JZKJYCFCSFROM{0}GROUP BY VISIT_DATE, PATIENT_ID, ORDERED_BYHaving 1=1 {1}) AS TEMP ) as ACREATE TABLE ['+@Table+']這里省掉70個列,下面是建表和索引.針對新查出來的表UPDATE ['+@Table+']SET 平均每張?zhí)幏接盟幤贩N數(shù) = case when下面再省掉所有列的update部分,下面是 row_number()的分頁3)以上語句大寫字母是列的名稱或別名,{}里面是傳入的其它條件或表名
面對千萬級別的數(shù)據(jù) 進行統(tǒng)計,誰有解決方案?
有只小跳蛙
2018-11-11 17:08:14