如何在sqlite中对列进行排序和goupby。我正在尝试使用Python。
query = '''
SELECT Agency, COUNT(*) AS NumComplaints
FROM data
GROUP BY UPPER(Agency)
ORDER BY -Agency
'''
df = pd.read_sql_query(query, disk_engine)
df.tail(50)
ORDER BY在这里没有影响。我应该怎么做才能按降序对Agency列进行排序。
我试过使用Orderby Agency DESC
和ORDER BY -Agency
。这里的ORDER BY没有影响。我得到的输出是一样的。
2条答案
按热度按时间j9per5c41#
试着给一个别名指定一个顺序.
DEMO
如果不这样做,您将按每个组中的随机元素进行排序,而这些元素可能是大小写的混合,这会影响排序。
sdnqo3pr2#
首先:你确定你正在尝试按Agency排序,而不是Count(否则你为什么要按DESC顺序排序?)
SQLite默认情况下使用不区分大小写的排序,所以我不相信在
UPPER(Agency)
或Agency
上分组会有什么不同。你可以在这里用这个查询来测试:您可以尝试使用查询here。
此外,您还可以手动指定排序规则是按不区分大小写的字符串分组还是按区分大小写的字符串分组。例如:
或者:
https://www.sqlite.org/datatype3.html#:~:text=7.%20Collating%20Sequences