[英]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.