0
我讀了很多線程,但沒有得到正確的解決方案,我的問題。這相當於該ThreadSQL - 左連接和WHERE語句顯示第一行
我有一個查詢,它收集數據並寫入每個shell腳本到一個CSV文件:
SELECT
'"Dose History ID"' = d.dhs_id,
'"TxFieldPoint ID"' = tp.tfp_id,
'"TxFieldPointHistory ID"' = tph.tph_id,
...
FROM txfield t
LEFT JOIN txfielpoint tp ON t.fld_id = tp.fld_id
LEFT JOIN txfieldpoint_hst tph ON fh.fhs_id = tph.fhs_id
...
WHERE d.dhs_id NOT IN ('1000', '10000')
AND ...
ORDER BY d.datetime,...;
這是基於有大量的表格和機器值的非常大的數據庫。我選擇了我感興趣的列,並通過內置的表ID將它們鏈接起來。現在我必須減少結果,我得到許多具有相同值的行,並且只更改ID。我只需要一個(第一)行的「tph.tph_id」與機制像
WHERE "Rownumber" is 1
或類似的東西。到目前爲止,我無法實現適當的子查詢或使用SQL函數ROW_NUMBER()
。您的幫助將非常感激。結果看起來像這樣,根據最後一個ID,我只需要一行這個數字(所有的ID都不是嚴格連續的)。
A01";261511;2843119;714255;3634457;
A01";261511;2843113;714256;3634457;
A01";261511;2843113;714257;3634457;
A02";261512;2843120;714258;3634464;
A02";261512;2843114;714259;3634464;
....
嘗試'集團BY'而用於聚集[除tph.tph_id所有字段]'GROUP BY'應該給你你想要的結果 –
也許我錯過了一些東西,但是在你選擇的開始處有一個致命的錯誤。你不能給一個字符串賦值(即'''劑量歷史ID''= d.dhs_id'是非法的)。其次,你正在使用一個別名'd'(就像'WHERE d.dhs_id NOT IN('1000','10000')'),我沒有看到這個別名被定義在哪裏。 – FDavidov
@FDavidov d(和其他)的別名在後面的SELECT部分中。我試過 – Nurito