2011-01-12 29 views
0

こんにちはすべて、ありがとうございました。 私は、解決できない小さな問題を抱えている私は、このテーブルを持っている、と私は、日付とグループで、それをソートしたい(私は唯一idCATごとに1行を表示)Mysqlで日付順にグループ化してグループ化する

| id | idcat | name |  date | 

| 1 | 3  | xx | 2011-01-02 | 

| 2 | 4  | xf | 2011-01-02 | 

| 3 | 3  | cd | 2011-01-01 | 

| 4 | 1  | cg | 2011-01-04 | 

| 5 | 4  | ce | 2011-01-06 | 

滞在したいと思いますその方法は、道にしようと、私はID


感謝の1人の友人がいない

| 2 | 4  | xf | 2011-01-02 | 

| 3 | 3  | cd | 2011-01-01 | 

| 4 | 1  | cg | 2011-01-04 | 

注文することができます仕事。

 
SELECT id, idcat, name, date FROM (SELECT * FROM data ORDER BY idcat, date) m GROUP BY idcat 

+0

希望の結果を得るためにどのようなロジックを使用していますか? '2011-01-01'は、ソースデータの' 2、4、xf'のいずれかと同じ行にありません。 –

+0

私はその論理を理解していないのですか? – Alexd2

+0

申し訳ありません、is is | 4 | | xf | 2011-01-02 – Alexd2

答えて

1

私は便利気圧テストするが、これを試すことができません。

SELECT FIRST(id), idcat, FIRST(name), FIRST(date) AS d FROM myTable GROUP BY idcat ORDER BY d; 

注FIRSTの使用は、特定のidcatでテーブル内の最初の行を選択するために呼び出します。

+0

idcatの中で最も最近のような特定の行が必要な場合は、次のように少しずつ行う必要があります:SELECT FROM(id)、idcat、FIRST(name)、FIRST(date) SELECT * FROM myTable ORDER BY日付DESC)idcat ORDER BY d; idcatごとに最も古い項目のDESCをASCに変更します。 –

-1

あなたはidcatによってグループ分けを取得しようとしている場合は、日付順:日付によってidcat順序によってmytableはグループから

。SELECT ID、idcat、名前、日付、

+0

これはうまくいきません。試してみましたが、それを注文してからグループ化するのが理想です。 – Alexd2

+0

まずidcatに従って日付をソートし、最も古いものを選んでパッケージ化してください。各idcatの最も古い返品 – Alexd2

+0

ええ、ずっと難しい、私はあなたのジレンマを参照してください。私があなたを理解していれば、各idcatの中で最も古いもののリストを日付順に取得したいと考えています。 –

関連する問題