首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询查询

查询查询
EN

Stack Overflow用户
提问于 2014-04-15 13:52:23
回答 3查看 81关注 0票数 0

我有更多的使用Access的经验,在这里,我将构建我的分析的小部分,并查询每一个新的视图。

我不是在尝试做一些在SQL中必须很简单的事情。

如果我对格式有疑问:

代码语言:javascript
复制
SELECT events.people, COUNT(events.eventType) AS usersAndEventCount
FROM theDB.events
WHERE event_id = 884
GROUP BY people

然后,我想像这样查询usersAndEventCount:

代码语言:javascript
复制
Select usersAndEventCount.people, usersAndEventCount.events
FROM [from where actually?]

试过:

代码语言:javascript
复制
usersAndEventCount;
events
theDB.events

这对SQL用户来说必须是非常基本的。但在我看来,将较大的查询分解为这些子查询要容易得多。

如何在同一个查询中查询usersAndEventCount?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-04-15 13:57:04

您的语句“然后希望查询usersAndEventCount”没有意义,因为usersAndEventCount是一列--至少在您的第一个示例中是这样。您不能“查询”一列。

但是从你给出的例子来看,你似乎想要这样的东西:

代码语言:javascript
复制
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中称为“派生表”。

票数 4
EN

Stack Overflow用户

发布于 2014-04-15 13:57:40

在纯SQL中,可以使用嵌套查询(AKA子查询)。只需将第一个查询放在()括号中,您的查询将如下所示:

代码语言:javascript
复制
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中所做的那样,您可以根据所使用的数据库系统将其保存为视图或存储过程。如果你想要一个例子,让我知道你正在使用的数据库系统。

票数 3
EN

Stack Overflow用户

发布于 2014-04-15 14:05:53

我不确定每100%,因为目前我不能测试。但我觉得应该管用。uaec是子查询的别名。这个别名可以在主查询中使用。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23085761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档