Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在SQL Alchemy中查找数组列中最频繁的值_Python_Database_Flask_Sqlalchemy_Flask Sqlalchemy - Fatal编程技术网

Python 在SQL Alchemy中查找数组列中最频繁的值

Python 在SQL Alchemy中查找数组列中最频繁的值,python,database,flask,sqlalchemy,flask-sqlalchemy,Python,Database,Flask,Sqlalchemy,Flask Sqlalchemy,我希望返回列中最频繁出现的内容。我知道如何在SQL中实现这一点,但不知道SQL炼金术。例如,我有一个包含帖子的数据库。每个帖子都有一个文本字段和一个类别字段。我希望按顺序返回前3个类别,如下所示: Post 1: "Text", "Food" Post 2: "Text", "Games" Post 2: "Text", "Games" Post 2: "Text", "News" Post 2: "Text", "News" Post 2: "Text", "News" Post 2: "Te

我希望返回列中最频繁出现的内容。我知道如何在SQL中实现这一点,但不知道SQL炼金术。例如,我有一个包含帖子的数据库。每个帖子都有一个文本字段和一个类别字段。我希望按顺序返回前3个类别,如下所示:

Post 1: "Text", "Food"
Post 2: "Text", "Games"
Post 2: "Text", "Games"
Post 2: "Text", "News"
Post 2: "Text", "News"
Post 2: "Text", "News"
Post 2: "Text", "Other"
Post 2: "Text", "Food"
将返回:

{"News", "Games", "Food"}

假设要分组的列名为“类别”:


@dylrei回答只是缺少一位,以便返回对象和计数器

from sqlalchemy import func, desc
session.query(tablename.category,              <--- You need to add this
    func.count(tablename.id).label('qty')
    ).group_by(tablename.category
    ).order_by(desc('qty'))
来自sqlalchemy导入函数,desc

session.query(tablename.category,您的输出与您的描述不匹配。
食物
为什么出现在
游戏
之前?我认为这个问题可能格式不正确。如果是这样,您是在问如何在SA中按查询/分组/按查询顺序求和吗?@Andy您是对的,食物应该在后面。@Dylrei差不多……然后您会返回t。)他通过添加。limit(3)返回计数,而不是对象本身
from sqlalchemy import func, desc
session.query(tablename.category,              <--- You need to add this
    func.count(tablename.id).label('qty')
    ).group_by(tablename.category
    ).order_by(desc('qty'))