小编blo*_*ish的帖子

MySQL 中多列的嵌套聚合和分组

考虑下product表(高度精简):

`id` int AUTO_INCREMENT
`category_id` int
`subcategory_id` int
`vendor_id` int
`price` decimal(6,2)
`inserted_at` timestamp
Run Code Online (Sandbox Code Playgroud)

对于给定的类别 ID,我试图检索包含每个子类别最新价格最低的供应商的列表。“最新”是指供应商可能对给定的类别 ID/子类别 ID 组合有多个价格,因此只应使用该类别 ID/子类别 ID/供应商 ID 的最近插入的价格。如果 2 个或更多供应商的价格之间存在平局,则应使用最低的 ID 作为决胜局。

例如,使用此数据:

id | category_id | subcategory_id | vendor_id | price | inserted_at
---------------------------------------------------------------------------
1  | 1           | 2              | 3         | 16.00 | 2015-07-23 04:00:00  
2  | 1           | 1              | 2         |  9.00 | 2015-07-26 08:00:00 
3  | 1           | 2              | 4         | 16.00 | 2015-08-02 10:00:00 
4  | …
Run Code Online (Sandbox Code Playgroud)

mysql aggregate greatest-n-per-group

5
推荐指数
2
解决办法
9859
查看次数

标签 统计

aggregate ×1

greatest-n-per-group ×1

mysql ×1