2017-08-30 4 views
-1

My database table私のSQLクエリは、最大カラム値と個別のレコードを選択する

私はPanel_Numberとその歴史を複製maitainsこの履歴テーブルを持っています。 私はテーブルからの最大(バージョン)と私に別個のPanel_Numberを与える質問を得るのにあなたの助けが必要です。

例: - パネル0G3101は、異なるバージョン1,2,3の表に3つの発生があります。私は結果セットにこの例では3であるMAX(VERSION)を持つPanel 0G3101を表示する必要があります。

同様に、すべてのパネル番号が最大バージョンである必要があります。

+1

をクエリにthese..work 100%をクリックしてみてください。彼らは異なる製品であり、この作業のために異なる解決策を持つかもしれません。 – 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のパネルで正しくバージョンが取得されていますが、最新のレコードが挿入されています。これはクエリshudがids-61.62,63,64を返すことを意味します(テーブルの最後にあります) – MayurS

0

あなたはあなたの問題を解決するために、GROUP BY句を使用することができます。

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

あなたの要件は `[mysqlの]`データベースの場合には、 `[オラクル]`タグが含まれていません。..

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

これは、ビジネスキーごとに最高のバージョン( 'panel_number')を持つレコードを選択するという要件を満たしていません。 – APC

関連する問題