【问题标题】:Mysql - where last X number are certain valueMysql - 最后一个 X 数字是特定值
【发布时间】:2011-05-03 12:00:45
【问题描述】:

我有一张这样的桌子:

列表: id、类型、日期

有没有一种方法只在 MySQL 中返回 type = '1' 但限制为 3 的最新(按日期顺序排列)的计数?

所以问题是,最后 3 项的值类型是 '1' 吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    表中最近 3 个条目中类型为 1 的项目的计数。

    SELECT COUNT(*) FROM (
      SELECT type FROM mytable ORDER BY date DESC LIMIT 3
    ) as t1
    WHERE t1.type = 1;
    

    我想这就是你所追求的。

    【讨论】:

      【解决方案2】:

      类型 1 的最后 3 个日期,逆 date 顺序:

      SELECT  *
      FROM    mytable
      WHERE   type = 1
      ORDER BY
              date DESC
      LIMIT 3
      

      类型 1 的最后 3 个日期,以date 顺序排列:

      SELECT  *
      FROM    (
              SELECT  *
              FROM    mytable
              WHERE   type = 1
              ORDER BY
                      date DESC
              LIMIT 3
              ) q
      ORDER BY
              date
      

      反向date顺序的连续类型1项目数:

      SELECT  COUNT(*)
      FROM    mytable
      WHERE   (date, id) >
              (
              SELECT  date, id
              FROM    mytable
              WHERE   type <> 1
              ORDER BY
                      date DESC
              LIMIT 1
              )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 2022-06-22
        相关资源
        最近更新 更多