SQL查询-限制查询结果

SQL查询-限制查询结果,第1张

SQL查询-限制查询结果

使用两个用户变量并计算相同的连续store_id,您可以替换

<= 5
为所需的任何限制

SELECt a.*FROM ( SELECt store_id, user_id, count(1) as visits  FROM shopping WHERe store_id IN (60,61,62,63,64,65,66) GROUP BY store_id, user_id ORDER BY store_id, visits desc, user_id) a,(SELECT @prev:=-1, @count:=1) bWHERe CASE WHEN @prev<>a.store_id THEN   CASE WHEN @prev:=a.store_id THEN    @count:=1   END ELSE   @count:=@count+1 END <= 5

根据要求编辑一些说明:

第一个子查询(a)是对数据进行分组和排序的子查询,因此您将拥有如下数据:

store_id | user_id | visits---------+---------+------- 601       5 602       3 603       1 612       4 613       2

第二个子查询(b)

@prev
使用-1和
@count
1初始化用户变量

然后从子查询中选择所有数据(a)验证中的条件

case

  • 验证

    @prev
    我们之前看到的store_id()是否与当前store_id不同。由于第一个
    @prev
    等于-1,因此没有与当前store_id匹配的条件,因此
    <>
    我们输入的条件为true,那么第二种情况就是
    @prev
    使用当前store_id更改值。这是特技这样我就可以改变两个用户变量
    @count
    @prev
    在相同条件下。

  • 如果先前的store_id等于

    @prev
    仅增加
    @count
    变量。

  • 我们检查计数是否在我们想要的值之内,因此

    <= 5

因此,根据我们的测试数据,您可以:

step | @prev | @count | store_id | user_id | visits-----+-------+--------+----------+---------+-------  0      -1      1      1      60      1        60          1        5   2      60      2        60          2        3  3      60      3        60          3        1  4      61      1        61          2        4  5      61      2        61          3        2


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5058367.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-15
下一篇2022-11-16

发表评论

登录后才能评论

评论列表(0条)

    保存