提问者:小点点

SQL根据表中最新的150个条目对元素进行计数


我正在尝试更改我现在的两个SQL查询,这样除了从表中给出一个结果外,它只给出基于表中最新的150个条目的结果。

我现在提出的两个问题是:

SELECT COUNT(*)
FROM `stock`.`replacements.archive`
WHERE `ciref` = '$cihistory'

SELECT `req_model`, COUNT(`req_model`) AS `value_occurrence`
FROM `stock`.`replacements.archive`
GROUP BY `req_model`
ORDER BY `value_occurrence` DESC LIMIT 5

我有办法做到这一点吗? 表中的id字段是正常使用的,所以猜测会使用这个字段,但我不确定如何实现它

这里的目的是只根据表中最新的150个条目对变量进行计数,我不想对表中的所有内容进行计数。

任何人有任何想法,将非常感谢!

谢谢


共1个答案

匿名用户

假设您有一个autoincremnt id,您可以选择最新的150条目为

    SELECT * 
    FROM `stock`.`replacements.archive` 
    ORDER BY id limit 150 

然后在此usbqoery上执行查询

    SELECT `req_model`, COUNT(`req_model`) AS `value_occurrence` 
    FROM (  
        SELECT * 
        FROM `stock`.`replacements.archive` 
        ORDER BY id limit 150 
    ) t
    GROUP BY `req_model` 
    ORDER BY `value_occurrence`