在SQL創建新表會同組假設某個表的結構如下通過表循環由Postgres的
product | day | transactionid | saleprice |
------------------------------------------------ |
Apple | 1 | 239849248 | 10 |
Apple | 2 | 239834328 | 10 |
Apple | 2 | 239849249 | 10 |
Apple | 3 | 239849234 | 11 |
Banana | 1 | 239843244 | 2 |
Banana | 2 | 239843244 | 2 |
Banana | 3 | 239843244 | 3 |
Banana | 4 | 239843244 | 3 |
Orange | 1 | 239234238 | 25 |
Orange | 2 | 239234238 | 25 |
Orange | 3 | 239234238 | 25 |
Orange | 3 | 239234238 | 26 |
Orange | 3 | 239234238 | 26 |
Orange | 4 | 239234238 | 27 |
其中多項產品被出售,每一天,以不同的價格多筆交易。對於每種產品,我都對Min(SalePrice)
(更改日誌,因爲這在我的數據中很少發生變化)的更改日誌感興趣。下面的查詢給我,對特定產品(說Orange
):
SELECT max(product), day, min(saleprice)
FROM tableabove
where product = 'Orange'
group by day
order by day asc;
給我:
product | day | minsaleprice |
Orange | 1 | 25 |
Orange | 2 | 25 |
Orange | 3 | 25 |
Orange | 4 | 27 |
所以,我有什麼,我需要爲我指定產品,但現在在路上我需要它。例如,對於橙色我只需要價格改變的日子(和第1天),這意味着它應該只有第2天和第4天的兩行。我也不知道如何迭代表中的所有產品生成如下所示的新表。
product | day | minsaleprice |
Apple | 1 | 10 |
Apple | 3 | 11 |
Banana | 1 | 2 |
Banana | 3 | 3 |
Orange | 1 | 25 |
Orange | 4 | 27 |
任何幫助表示讚賞。謝謝。
謝謝。我沒有看到'min()'函數應用於某個產品每天聚合多個事務的位置。 –
@ste_kwr。 。 。這是因爲'min()'沒有被用於聚合。事實上,沒有任何東西被彙總。這只是選擇銷售價格變化的行,這似乎是問題中提到的願望。 –
每天都有多次交易,有多種不同的銷售價格。這些銷售價格的'min()'變化將被跟蹤。 –