SELECT A.code, .......... A.C_VALUE1 CVALUE1, A.C_VALUE2 CVALUE2, B.C_VALUE3 CVALUE3 from (select t.code, t.c_value1, to_char(wm_concat(t.c_value2)) c_value2 from t_ext t where t.c_data_type = 'RELA' group by t.code, t.c_value1) a left join t_ext b on a.code = b.code and a.c_value1 = b.c_value1 and b.c_data_type = 'RELA'
同事針對上面SQL提出問題:html
原本數據庫是一個c_port_code 一個 c_value1 一個 c_value2存的,
如今想按照把 同一個 c_port_code 和 c_value1 的 c_value2合併爲新的c_value2,
可是不想把c_value3和d_date放到分組裏面,又須要這兩個字段的值,致使重複數據了,該怎麼去重呀sql
在a 的結果集,用了group by ,其實至關於將表「降維」了。假如原來1000行,如今分組後結果集變爲100行了。
在b 的結果集,沒用group by ,它仍是原來的維度。
當它們left join時,確定會再擴展回來呀,升維成爲1000行。數據庫
再解釋一下維度:
好比 商品表是一維表,
商品名稱: 價格,產地,類別,備註echarts
商品日銷售表是二維表:
商品名稱,日期: 購買人,購買數量,結帳口......spa
若是你對「商品日銷售表" group by 一下。 就至關於降維,體如今主鍵列減小了
商品名稱 : 總購買數量.net
前面你讓兩個維度不一樣的表進行join,確定引發某個表的擴展呀!設計
同事說他寫了2個SQL來獲取結果。code
不少系統都會設計一個數據源的模塊,每每止於」取到結果集「,其實拿到結果集只是第一步,更重要的是要反應出來結果集的行間的一個關係來。比較重要就是主鍵列,維度這些概念。htm
ORACLE自己也有維度的概念,我尚未把維度的概念理解透了,它直接關係着數據的彙總效率,數據視圖的」上鑽、下鑽「,在echart裏有上鑽下鑽功能,我不太清楚它是怎麼維護數據關係的,有時間了要研究一下。blog
http://blog.csdn.net/wanghai__/article/details/6609193
Echarts文檔:
http://echarts.baidu.com/option.html#series-line.dimensions