簡體   English   中英

查詢查詢

[英]Querying a query

我有更多使用 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?

您的語句“ then want to query 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 中稱為“派生表”

在純 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 中那樣在多個地方重復使用它,您可以根據您使用的數據庫系統將其保存為視圖或存儲過程。 如果你想要一個例子,讓我知道你正在使用的數據庫系統。

我不確定每 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM