我有更多使用Access的经验,我会在小部件中构建我的分析并查询每个新视图。
我不是想在SQL中做一些简单的事情。
如果我查询格式:
SELECT events.people, COUNT(events.eventType) AS usersAndEventCount
FROM theDB.events
WHERE event_id = 884
GROUP BY people
然后我想查询usersAndEventCount 像这样:
Select usersAndEventCount.people, usersAndEventCount.events
FROM [from where actually?]
试过:
usersAndEventCount;
events
theDB.events
对于SO上的SQL用户来说,这似乎是非常基本的。但在我看来,将较大的查询细分为这些子查询要容易得多。
如何在同一查询中查询usersAndEventCount?
答案 0 :(得分:4)
您的声明“然后想查询usersAndEventCount ”没有意义,因为usersAndEventCount
是列 - 至少在您的第一个示例中。您无法“查询”列。
但是从你给出的例子来看,你似乎想要这样的东西:
Select usersAndEventCount.people, usersAndEventCount.events
FROM (
SELECT events.people,
COUNT(events.eventType) AS as events
FROM theDB.events
WHERE event_id = 884
GROUP BY people
) as usersAndEventCount
这在SQL
中称为“派生表”答案 1 :(得分:3)
在纯SQL中,您可以使用嵌套查询(AKA子查询)。只需将您的第一个查询括在()
括号中,这样您的查询就会如下所示:
Select usersAndEventCount.people, usersAndEventCount.events
FROM (SELECT events.people, COUNT(events.eventType) AS events
FROM theDB.events
WHERE event_id = 884
GROUP BY people) usersAndEventCount
或者,要保存第一个查询并在Access中进行多次重复使用,可以将其另存为View或Stored Procedure,具体取决于您使用的数据库系统。如果您想要一个示例,请告诉我您正在使用的数据库系统。
答案 2 :(得分:1)
我不确定每100%,因为目前我无法测试。但我认为它应该有效。 uaec是子查询的别名。您可以在主查询中使用此别名
Select uaec.people, uaec.usersAndEventCount
FROM (SELECT events.people, COUNT(events.eventType) AS usersAndEventCount
FROM theDB.events
WHERE event_id = 884
GROUP BY people) uaec