如何计算表中的平均行数并将特定行添加到输入中?

时间:2019-04-11 17:48:24

标签: sql

我有所有国家/地区的平均值行,我尝试计算所有平均值的平均值并添加特定输入的行。

我能够通过汇总和平均行动来计算所有国家的平均值,但是我不知道如何添加特定的输入行。

输入:

enter image description here

输出:

| Country    |     Average      |
|  All       |   1.72096666666  |
|  GB        |   1.64992311635  |

4 个答案:

答案 0 :(得分:0)

也许是这样? (让我知道我是否想念您的意思):

(YOUR_AGGEGATE_QUERY_GOES_HERE)
UNION
(SELECT CountryRegionCode as Country, AverageOrdersPerCostumer as Average FROM table_name
WHERE CountryRegionCode = "GB")

如果您想改用行ID,但可以理解,可以调整WHERE语句。

答案 1 :(得分:0)

如果您使用的是oracle数据库,则可以尝试使用完全适合您的需求的汇总聚合功能...

下面是供您参考的链接...

https://docs.oracle.com/cd/B28359_01/server.111/b28313/aggreg.htm#i1007413

https://oracle-base.com/articles/misc/rollup-cube-grouping-functions-and-grouping-sets

答案 2 :(得分:0)

这肯定会起作用:

select 'ALL',avg(averageorderpercustomer) from tablename group by 
countryregioncode union
select countryregioncode,averageorderpercustomer from tablename  where 
countryregioncode=5;

答案 3 :(得分:0)

您似乎想要:

SELECT 'All' as Country, AVG(AverageOrdersPerCostumer) as Average
FROM t
UNION ALL
SELECT CountryRegionCode as Country, AverageOrdersPerCostumer as Average
FROM table_name
WHERE CountryRegionCode = 'GB';

最佳做法是,您应使用UNION ALL而不是UNION

我还注意到,您所取得的平均值是平均值。这些国家/地区的大小不同,因此这可能与不考虑国家/地区的平均值不同。