6

次のようなテーブルがあります。

ゴールド_2012

gold_city | gold_type | gold_cost | gold_selltime
--------------------------------------------------
city1     | type 1    | 41.23     | 2012-01-01   
city1     | type 1    | 42.23     | 2012-02-02   
city1     | type 1    | 40.23     | 2012-03-03   
city2     | type 2    | 43.23     | 2012-01-01   
city2     | type 2    | 45.23     | 2012-02-02   
city2     | type 2    | 47.23     | 2012-03-03   
city3     | type 3    | 48.23     | 2012-01-01   
city3     | type 3    | 49.23     | 2012-02-02   
city3     | type 3    | 44.23     | 2012-03-03   

および でgold_selltime各グループを descで 1 つの最後の結果順序を取得するにはどうすればよいですか。gold_citygold_type

私はこれを使用しました:

SELECT * , COUNT( * ) 
FROM  gold_2012
GROUP BY  gold_type ,  gold_city
ORDER BY gold_selltime DESC

しかし、うまくいきませんでした。
次のような結果しかありません:

gold_city | gold_type | gold_cost | gold_selltime
--------------------------------------------------
city1     | type 1    | 41.23     | 2012-01-01   
city2     | type 2    | 43.23     | 2012-01-01   
city3     | type 3    | 48.23     | 2012-01-01   

しかし、私はそれが次のように必要です:

gold_city | gold_type | gold_cost | gold_selltime
--------------------------------------------------
city1     | type 1    | 40.23     | 2012-03-03   
city2     | type 2    | 47.23     | 2012-03-03   
city3     | type 3    | 44.23     | 2012-03-03   

ごめん!私はsthを忘れました!上記の編集した質問をご覧ください。

4

2 に答える 2

12

MAXそのために関数を使用できます:

SELECT gold_city, gold_type 
       , MAX(gold_selltime) AS gold_selltime, COUNT( * ) AS `COUNT`
FROM gold_2012 
GROUP BY gold_type , gold_city 
ORDER BY gold_selltime DESC

このSQLFiddleを参照してください

注:DATE_FORMAT関数を使用して日付を変換できます:

DATE_FORMAT(MAX(gold_selltime), '%Y-%m-%d') AS gold_selltime

このSQLFiddleを参照してください

アップデート

OPが要件を変更したため、この更新された回答を参照してください:

次のクエリを使用してそれを実現できます。

SELECT *
FROM gold_2012
WHERE gold_selltime IN
(
    SELECT MAX(gold_selltime) AS gold_selltime
    FROM gold_2012  
)

このSQLFiddleを参照してください

于 2012-11-01T04:54:06.393 に答える
1

これを試して

SELECT gold_city,gold_type , MAX(gold_selltime)
FROM gold
WHERE gold_city IN (select distinct gold_city from gold) 
GROUP BY gold_city ,gold_type
于 2012-11-01T05:15:28.733 に答える