栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL查询-限制查询结果

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号