【发布时间】:2017-10-14 08:24:16
【问题描述】:
我有一个名为push_message_info 的mysql 表,我想对其进行过滤然后计算一些结果。得到结果的查询是:
SELECT p.pending, s.success, t.total
FROM
(SELECT count(*) AS pending FROM push_message_info WHERE served < total) AS p,
(SELECT count(*) AS success FROM push_message_info WHERE served = total) AS s,
(SELECT count(*) AS total FROM push_message_info) AS t
;
问题是我只想计算最新的条目。因为它有一个名为 submit_date 的日期时间字段,所以我认为这样的事情会起作用:
SELECT p.pending, s.success, t.total
FROM
(SELECT * FROM push_message_info WHERE DATE(submit_date) > '2017-05-14') AS filtered
(SELECT count(*) AS pending FROM filtered WHERE served < total) AS p,
(SELECT count(*) AS success FROM filtered WHERE served = total) AS s,
(SELECT count(*) AS total FROM filtered) AS t
;
但它给我带来了错误:
错误 1146 (42S02):表 'unifiedpush.filtered' 不存在
如何过滤/限制原始表,以便在该新表上应用其他查询?
【问题讨论】:
-
必须是
unifiedpush.push_message_info,不能是push_message_info吗? -
@XtremeBaumer 真的没关系,为了简单起见我删除了它,但在第二个查询中忘记了它,我现在将其删除。
-
@Strawberry 我看不出我可以添加什么示例,因为问题是关于查询本身而不是数据。
-
何塞,你似乎决心阻止其他人提供帮助。它正在工作。
标签: mysql