2017-08-30 34 views
-1

My database table我的SQL查詢與最大列值選擇不同的記錄

我有maitains複製Panel_Number和歷史上這一歷史表。 我將需要你的幫助來獲得一個查詢,這將使我從表中得到不同的Panel_Number及其最大值(版本)。

例如: - 面板0G3101在表中有3個不同版本的1,2,3。我只需要在結果集中顯示面板0G3101 WITH MAX(VERSION),在這種情況下是3。

同樣,我需要所有不同的面板號碼與他們的最大版本。

+1

如果你的要求是'[MySQL的]'數據庫不包含'[甲骨文]'標籤。他們是不同的產品,對於這項任務他們可能有不同的解決方案。 – APC

+1

你可以看看這個,這對我以前的幫助。希望它對你也有幫助。 https://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column – Amal

回答

0

這裏是an SQL fiddle I made for you。我添加了一些任意的數據,但查詢可以正常工作。

查詢應該是:

SELECT 
    id, 
    panel_number, 
    max(version) 
FROM 
    PANEL 
GROUP BY 
    panel_number 

的結果是這樣的:

| id | panel_number | max(version) | 

|----|--------------|--------------| 

| 1 |  0G3101 |   3 | 

| 4 |  0G3102 |   2 | 
+0

謝謝。但這並不完全按要求運作。我可能沒有精確地解釋我的要求。在圖像中,對於面板號0G3101,0G3106,0G3107,0G3108,我正確地獲取版本,但插入了最新的記錄,這意味着查詢抖動返回ids- 61.62,63,64(它們在表格的末尾) – MayurS

0

您可以通過子句中使用集團解決您的問題。

SELECT panel_number, max(version) FROM PANEL GROUP BY panel_number 
+0

對不起芽。我需要插入最新版本的面板號碼,在這種情況下,它是ids- 61.62,63,64(位於表格末尾) – MayurS

+0

請嘗試以下一種方式:'SELECT panel_number,version,max(id)FROM PANEL GROUP BY panel_number' –

+0

更新您的問題,以便我們可以提供幫助,並對小提琴進行一些更改,以便我們可以知道您確切需要什麼。 – droidnation

-1

嘗試在查詢these..work 100%的點擊..

SELECT panel_number, MAX(version) FROM PANEL GROUP BY panel_number 
+0

這不符合要求,即爲每個業務鍵('panel_number')選擇最高版本的記錄。 – APC