を得るために、私は、SQLテーブルを持っているSQLクエリの最近の項目に
id item date
A apple 2017-09-17
A banana 2017-08-10
A orange 2017-10-01
B banana 2015-06-17
B apple 2014-06-18
は、どのように私は、SQLクエリを記述します。例:
id recent second_recent
a orange apple
b banana apple
を得るために、私は、SQLテーブルを持っているSQLクエリの最近の項目に
id item date
A apple 2017-09-17
A banana 2017-08-10
A orange 2017-10-01
B banana 2015-06-17
B apple 2014-06-18
は、どのように私は、SQLクエリを記述します。例:
id recent second_recent
a orange apple
b banana apple
row_number()
と条件付き集計を使用できます。
select id,
max(case when seqnum = 1 then item end) as most_recent,
max(case when seqnum = 2 then item end) as most_recent_but_one,
from (select t.*,
row_number() over (partition by id order by date desc) as seqnum
from t
) t
group by id;
などが上言った:私はあなたが2つの値を取得することにより、順序で同じことを行うことができると思いますが
SELECT mt.*,
FROM MyTable mt INNER JOIN
(
SELECT item AS recent, MIN(date) MinDate, ID
FROM MyTable
GROUP BY ID
) t ON mt.ID = t.ID AND mt.date = t.MinDate
minから取得するには、GROUP BYを使用する必要があります SQL: Group by minimum value in one field while selecting distinct rows
あなたはピボットテーブル
SELECT first_column AS <first_column_alias>,
[pivot_value1], [pivot_value2], ... [pivot_value_n]
FROM
(<source_table>) AS <source_table_alias>
PIVOT
(
aggregate_function(<aggregate_column>)
FOR <pivot_column> IN ([pivot_value1], [pivot_value2], ... [pivot_value_n])
) AS <pivot_table_alias>;
は、使用しているDBMSここ Example
例で詳細を見る使用することができますか?答えはシステムによって異なります。 mysql <> SQLサーバ。 –
- あなたは何を試しましたか?これは私のサイトではありません – Randy
互換性のないデータベースタグを削除しました。 SQL ServerとMySQLは同じものではありません。 –