我对GROUP BY有一些麻烦。
我试图计算客户的平均年龄。
pandas.errors.ParserError: Error tokenizing data. C error: Expected 5 fields in line 5, saw 12
因为数据非常大,我做了一个GROUP BY。
Date| Name|Country|Balance|Age
2016|Sharp|Iceland| $200 |29
2016|Bob |Finland| $100 |22
2016|Sharp|Iceland| $500 |29
2016|James|USA | $10 |21
2017|Sharp|Iceland| $2 |30
然而,这将是什么......它会是:
SELECT Date, Name, Country, SUM(Balance), Age
FROM Table
GROUP BY Date, Name, Country, Age
我如何计算平均年龄?
很困惑, 尖锐。
答案 0 :(得分:1)
SELECT语句中除了聚合函数之外的每个表达式都必须在GROUP BY中吗?
GROUP BY到底在做什么?
在你的例子中,如你所说,你需要平均年龄,但是group by子句的标准应该是什么?你想要平均年龄日期明智,国家明智,或日期明智和国家明智...
以下是示例查询:
-- date and contry wise both
select Country,Avg(Age) from demo123
group by Date,Country
-- date wise
select Date,Avg(Age) from demo123
group by Date
-- Country wise
select Country,Avg(Age) from demo123
group by Country
答案 1 :(得分:0)
我对SQL和编程一般都是新手,但是从我到目前为止所学到的:
GROUP BY从数据库中获取多个列,并将它们压缩到一个组进行分类。 synatax如下: SELECT列名称 从表 需要条件的地方(AVG年龄) GROUP BY列名称
如果您愿意,可以订购它们。我相信你是正确的说,如果你选择列,你将按你选择的相同列进行分组。
这是我用过的参考资料。 SQL info
它没有太深入,但这就是我读它的方式。
希望我说的话可能有所帮助。祝你好运。
芽菜
答案 2 :(得分:0)
Aggregate
函数根据Select
列表返回输出,所选列必须在GROUP BY
子句中。
您需要的查询将是这样的。
SELECT Date, Name, Country, SUM(Balance), AVG(Age)
FROM Table
GROUP BY Date, Name, Country