2017-10-11 37 views
-2

我有一个看起来像这样的表:是否有可能通过SQL中的多行进行GROUP和SUM? (如果是的话:怎样)

当前表:“original_table”

col_1   col_2    col_3 
0 Non-Saved  www.google.com 10 
1 Non-Saved  www.facebook.com 20 
2 Non-Saved  www.linkedin.com 20 
3 Saved   www.Quora.com  30 
4 Saved   www.gmail.com  40 

我可以导出表,如下面的使用SQL查询?

col_1   col_2    col_3 
0 Non-Saved  www.google.com 50 
        www.facebook.com 
        www.linkedin.com 
1 Saved   www.Quora.com  70 
        www.gmail.com  

基本上我期待一个表具有从COL_1 DISTINCT值,从COL_2和SUM(col_3),用于在一排从col_3对应值的所有的对应值。

附加上下文:我正在iPython笔记本中运行SQL查询。

+0

提示:您可以使用[group_concat](https://sqlite.org/lang_aggfunc.html#groupconcat) –

+1

请参阅简单的sql教程,您将获得答案。 – fancyPants

+0

对不起!我应该在我的问题中给出更多的背景(刚添加)。我正在iPython笔记本中运行我的查询。尝试使用group_concat它给了我以下错误: 'AnalysisException:u“未定义的函数:'GROUP_CONCAT'。该函数既不是注册的临时函数,也不是在数据库'default'中注册的永久函数。' –

回答

0

这个问题最初是标记sqllite作为RDBMS SQLite的SQL是

select col_1,group_concat(col_2) as col_2,sum(col_3) as col_3 
from yourtable 
group by col_1 
order by sum(col_3) desc; 

现在 - 我们知道这是spark_sql不天真地支持这种类型的东西。请参阅here获取答案

+0

这将在普通的MySql中工作..但在iPython笔记本中嵌入式查询失败。 给了我以下错误: 'AnalysisException:U“未定义功能:‘GROUP_CONCAT’这个功能既不是一个临时注册的功能,也没有在数据库“注册的永久性功能default'.' –

+0

实际 - 应该在工作sqllite(这是你标记的) –

+0

也许你可以将ipnb保存在某处并链接到那个? –

相关问题