我有一个表,其中有名称、组名和值。每个组名也始终作为单个名称显示。如果组名以单个名称表示,则组名字段始终为空。名称可以属于组,但不是必需的。我举个例子:
Name Group Value
-----------------------
name1 | group1 | 10,000
name2 | group1 | 12,000
name3 | group2 | 9,000
group1| | 40,000
name4 | group2 | 30,000
name5 | | 11,000
group2| | 1,000
name6 | group1 | 19,000
对于每个单独的名称,我希望从该表中得到以下结果:
根据上述示例,结果如下所示:
Name Group Max(V)
-----------------------
name1 | group1 | 40,000
name2 | group1 | 40,000
name3 | group2 | 30,000
group1| group1 | 40,000
name4 | group2 | 30,000
name5 | name5 | 11,000
group2| group2 | 30,000
name6 | group1 | 40,000
我知道如何通过两个单独的查询和一些python数据混合来获得它。然而,我想知道哪一种是最python的方法来实现它,如果有可能得到相同的结果与一个单一的查询
结果:
您需要SQLite版本3.8.3(2014)或更新版本才能理解WITH子句。如果您使用的是较旧的版本,那么sql很容易重写,只需在后面使用带子选择的圆括号即可
最常用的SQL方法是使用单个SQL查询
可以使用CASE expression和correlated subquery计算两个不同的值:
(但是有一个helper function来替换空值;
GroupColumn
的整个表达式可以简化为ifnull(GroupColumn, Name)
。)相关问题 更多 >
编程相关推荐