繁体   English   中英

SQL SELECT 来自多个表的列的平均值

[英]SQL SELECT avg of columns from multiple tables

我现在有一个 SQL 查询,它生成一个如下所示的表:

人口统计 星期 可用性 Session
2 10 5 7 9

这是查询:

SELECT

    avg(cast(d.duration as bigint)) as "Demographic",
    avg(cast(m.duration as bigint)) as "Month",
    avg(cast(w.duration as bigint)) as "Week",
    avg(cast(u.duration as bigint)) as "Usability",
    avg(cast(s.duration as bigint)) as "Session"
   
FROM 
    "demographic" as d,
    "month" as m,
    "week" as w,
    "usability" as u,
    "session" as s

我想要的是一个看起来像这样的表:

桌子 平均持续时间
人口统计 2
10
星期 5
可用性 7
Session 9

这可能吗?

使用UNION将每个结果放在不同的行上。

SELECT 'Demographic' AS Table, AVG(CAST(duration) AS BIGINT) AS `Average Duration` FROM demographic
UNION ALL
SELECT 'Month', AVG(CAST(duration) AS BIGINT) FROM month
UNION ALL
SELECT 'Week', AVG(CAST(duration) AS BIGINT) FROM week
UNION ALL
SELECT 'Usability', AVG(CAST(duration) AS BIGINT) FROM usability
UNION ALL
SELECT 'Session', AVG(CAST(duration) AS BIGINT) FROM session

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM