【发布时间】:2020-09-10 19:06:08
【问题描述】:
----------------
c_id s_id p_id (customer_id, service_id, provider_id)
---- ---- ------
1, 1, 1 - 无法选择,因为下一个条目具有相同的 p_id
1, 2, 1
1、3、3
2, 1, 1
2、2、2
2、3、3
3, 1, 3 - 无法选择,因为下一个条目具有相同的 p_id
3, 2, 3 - 无法选择,因为下一个条目具有相同的 p_id
3、3、3
编写查询以从上述数据产生以下结果的成本效益高的方法是什么?
---------------- c_id s_id p_id ---- ---- ------ 1, 2, 1 1、3、3 2, 1, 1 2、2、2 2、3、3 3、3、3【问题讨论】:
-
mysql 5.7.23 @BarbarosÖzhan
-
无法选择,因为下一个条目具有相同的 p_id 术语“下一个”只有在指定排序顺序后才有意义。同一个 c_id 中的 ORDER BY s_id 是否安全排序? s_id 是否包含从 1 开始的自然数,并且每个单独的 c_id 没有跳过值?是否有可能某些 c_id 具有 p_id 值,例如 1,2,1,1?
-
@Akina 我可以在每一行添加新列
timestamp以根据时间戳对 p_id 进行排序并选择最新的常用 p_id。 -
向我们展示一些方法,我们会选择最具成本效益的。
标签: mysql sql window-functions gaps-and-islands mysql-5.7