2016-10-10 67 views
0

我需要一些幫助與GROUP BY問題。我正在使用mysql來獲取表格的最後一行(紅色行)。集團通過和desc重複名稱

這是示例數據看起來怎麼樣:

enter image description here

,我曾嘗試查詢:

Select *,min(remain),max(Sequance) 
from ApplePen 
Group by Name 
Order by max(Sequance); 

然後我得到的結果是:

enter image description here

r我想esults是:

(將由運算如下所示。現在我們不知道。也許上面的箭頭)

+1

爲什麼你應該得到的結果在你的形象?......表現出適當的數據樣本,不僅預期的結果,並解釋相關的邏輯 – scaisEdge

+0

創建sqlfiddle這樣他們就可以對其進行測試。順便說一句,你的查詢有一個非'ONLY_FULL_GROUP_BY'問題。 – Drew

回答

1

不太清楚,但我相信這是你可能需要的東西:

select 
    a.max_id, 
    a.name, 
    b.use, 
    a.max_remain, 
    a.min_sequance, 
    a.max_remain, 
    a.max_sequance 
from (
    select 
     name 
    , max(id) as max_id 
    , min(remain) as min_remain 
    , max(sequance) as max_sequance 
    , max(remain) as max_remain 
    , min(sequance) as min_sequance 
    from applepen 
    group by name 
) a 
left join applepen b on 
    a.name = b.name and a.id = b.id 

計算MINMAX列值每name,然後返回max(id)use列。

+0

?你知道,總會有一場比賽。 –

+0

如果我確定我會使用'inner join'的約束條件。 OP沒有指定它,因此我不想丟棄任何東西。我寧願自己去看問題,而不去理會。 –

0

你可以使用一個元組和子選擇,因爲你正在使用的樣本輸出顏色

select * from ApplePen 
    where (remain, sequance) in (select min(remain), max(sequance) from ApplePen) 
+0

發表評論scaisEdge這麼多的感謝,但這樣做還給我行0 :) – vvvvvvvvvv

+0

我爲什麼你使用'離開join'更新的答案 – scaisEdge