現在有兩張表
過車記錄表(百萬條記錄)
過車ID 設備編號,車道編號,圖片路徑,過車時間
欄位(GCID,SBBH.CDBH,imgurl, GCSJ )
車道資訊表 CDXX(千條記錄)
(ID SBBH,CDBH) 設備編號是唯一的 一個設備下有多個車道編號
注:兩張表沒有建立外鍵
現在需要 一段時間內 所有車道每個車道取一張圖片, 沒有記錄圖片留空
求各位大神指點
SELECT DISTINCT sbbh, cdbh
FROM GCJL
WHERE GCSJ >= TO_DATE ('2014-01-15 08:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND GCSJ <= TO_DATE ('2014-01-15 09:00:00', 'YYYY-MM-DD HH24:MI:SS');
現在只想到這樣去重設備編號和車道編號 但是 去重后其他列不顯示 求各位大神指點
車道資訊表 Left join 過車記錄表 只能通過 sbbh and cdbh 會出現大于 車道資訊表 條數的記錄
求各位大神指點求各位大神指點求各位大神指點求各位大神指點
uj5u.com熱心網友回復:
SELECT distinct CDXX.SBBH,cdxx.CDBH
FROM CDXX cdxx left join GXJL gcjl
on CDXX.SBBH=gcjl.sbbh AND cdxx.CDBH = gcjl.cdbh
WHERE jgsj >= TO_DATE ('2014-01-15 08:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND jgsj <= TO_DATE ('2014-01-15 08:00:01', 'YYYY-MM-DD HH24:MI:SS')
這樣又無法得到我想要的 圖片路徑 求解 求解
uj5u.com熱心網友回復:
SELECT CDXX.SBBH,cdxx.CDBH,max(imgurl)
FROM CDXX cdxx left join GXJL gcjl
on CDXX.SBBH=gcjl.sbbh AND cdxx.CDBH = gcjl.cdbh
WHERE jgsj >= TO_DATE ('2014-01-15 08:00:00', 'YYYY-MM-DD HH24:MI:SS')
AND jgsj <= TO_DATE ('2014-01-15 08:00:01', 'YYYY-MM-DD HH24:MI:SS')
group by CDXX.SBBH,cdxx.CDBH;
uj5u.com熱心網友回復:
看的邏輯有點亂,看了2遍才明白
你就是想顯示SBBH,CDBH, 然后加任意一條圖片記錄imgurl ?
uj5u.com熱心網友回復:
大哥 這里用max()是起什么作用的還有如果我想要 沒有記錄 顯示 imgurl null 怎么弄
最好還有其他列 沒有匹配的 圖片顯示null
uj5u.com熱心網友回復:
其他列?你要什么列?
uj5u.com熱心網友回復:
這個陳述句就是SBBH,CDBH 有記錄,圖片路徑沒記錄就顯示的空uj5u.com熱心網友回復:
'現在需要 一段時間內 所有車道每個車道取一張圖片, 沒有記錄圖片留空'根據lz的描述,我把設備理解成攝像頭或者拍斬訓,lz要的是所有車道每個車道的取一張圖片,那一個車道可能有多個設備拍攝照片,只要取其中一張即可。
若某個車道多個設備,有的拍到了照片有的沒拍到,那就要使用row_number按照車道磁區圖片路徑牲畜排序取第一條,也就是有圖片的哪條記錄,具體陳述句如下:
SELECT A.CDBH,DECODE(B.IMGURL,NULL,NULL,B.IMGURL) AS IMGURL
FROM CDXX A LEFT JOIN (
SELECT CDBH,IMGURL,row_number() over(partition by CDBH order by IMGURL) rn
FROM GCJL
WHERE GCSJ>=DATE1 AND GCSJ<DATE2
) b
WHERE A.SBBH=B.SBBH AND B.RN=1
GROUP BY A.CDBH
;
不知理解的對否?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/107695.html
標籤:開發
上一篇:大家新年快樂!急急急.求大神.
下一篇:oracle 11g sql developer enter the full pathname for java.exe 的問題
