2017-07-20 21 views
0

名前が 'Name'、 'Product'、 'Value'、 'Update Date'の列のテーブルがあります。私は列 '名前'、 '製品'、 '値'の一意の値を選択するSQL文を持っていますが、最新のものから最近の '更新日'順に並べる方法で行います。SQLクエリSELECT DISTINCT WHERE BY

このようなSQL select文の出力を返すと、私は簡単に知ることができます.3つの名前、または3つの値、3つの値、最新の更新を持つ3つの製品を考えてみましょう。私が使用できるSQL文はありますか?

「名前」、「製品」、「値」の各列に対して個別のSQL文を使用することを検討しています。 ORDER BYステートメントをどこかに持っています。何かご意見は?

+0

、そのデータに基づいていくつかのサンプルデータと予想される出力を追加します。 [**フォーマットされたテキスト**](http://stackoverflow.com/help/formatting)、[スクリーンショットなし](http://meta.stackoverflow.com/questions/285551/why-may-i-not -upload-images-of-code-on-so-asking-a-question/285557#285557)。コメントにコードや追加情報を投稿しないでください –

+0

[DBMS](https://en.wikipedia.org/wiki/Database)はどちらを使用していますか? Postgres?オラクル? DB2?ファイアバード? –

答えて

2

あなたは、ソートのための最大の日付を取得するために、集約に切り替える必要があります。** [編集] **あなたの質問

select Name, Product, Value 
from tab 
group by Name, Product, Value 
order by MAX(UpdateDate) desc 
+0

ありがとうございます!これを明確にするために、このクエリは、最大のUpdateDateを持つName、Product、Valueの列からなるユニークなエントリを取得します。一意のエントリがName、Product、Valueの3つの列ではなくName単体またはProduct単体またはValue単体で構成されることを希望する場合は、個別の文を正しく実行する必要がありますか?次のように:MAX(UpdateDate)descで名前順にタブグループから名前を選択し、MAX(UpdateDate)descなどによる製品注文によるタブグループから製品を選択します。 – Diana

+1

@Diana: Name、Product、Value' *の組み合わせを指定し、最新のUpdateDateでソートします。 1つの列ごとにそれにしたい場合は、3つの選択+ UNION ALLが必要です。 – dnoeth