我试着做一个简单的测试,从表中提取特定零件号的信息,例如:
SELECT *
FROM table_name
WHERE part_no IN ('abc123')
返回25行。现在我想计算一个特定列中满足“accepted”条件的数字,但结果仅限于最近的10个。我的方法是这样写:
Select Count(*)
FROM table_name
WHERE part_no IN ('abc123') AND lot IN ('accepted')
ORDER BY date DESC
LIMIT 10
我很难拿到订单并限制操作。我需要帮助,只是让它适当地限制,我可以从那里找出其余的。
编辑:我知道操作发生在只返回一行值的count上;但我放了第二个片段来展示我在思考过程中的困境。
2条答案
按热度按时间eqfvzcg81#
你的问题
SELECT Count(*) FROM ...
总是正好返回一行。你到底想做什么还不是100%清楚,但是如果你想知道最后10个中有多少个被接受了,你可以使用一个子查询,比如:
内部查询将返回123部分最近的10行,然后外部查询将统计接受的行。
还有其他解决方案(例如,您可以让内部查询输出一个字段,当部分不被接受时为0,当部分被接受时为1,然后求和)。根据您使用的确切方言/数据库,您可能还有更优雅的选项。
o2rvlv0m2#
select count返回一行,因此order by和limit对结果无效