You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用count()统计数据库查询结果中品牌的出现次数?

统计收藏手机品牌出现次数的两种方法

方法一:用SQL直接统计(推荐)

直接修改查询语句,利用COUNT()和GROUP BY让数据库完成统计,效率更高,不用在Python里处理冗余数据。

修改后的代码:

# 查询品牌及对应收藏次数
brand_counts = conn.execute('''
    SELECT Smartphone.brand, COUNT(*) as count 
    FROM Favourite 
    INNER JOIN Smartphone ON Favourite.smartphoneID = Smartphone.id 
    WHERE Favourite.userID = ? 
    GROUP BY Smartphone.brand
''', (userid,)).fetchall()

# 输出统计结果
for brand, count in brand_counts:
    print(f"{brand}出现{count}次")

说明:把用户ID的筛选条件移到WHERE子句更符合SQL规范,GROUP BY按品牌分组后,COUNT(*)会自动统计每组的记录数,直接返回你需要的统计结果。

方法二:在Python中统计现有查询结果

如果不想改动原SQL,也可以用Python内置工具处理已获取的结果:

首先导入Counter:

from collections import Counter

然后修改原有代码:

favourites = conn.execute('SELECT Favourite.id, Favourite.smartphoneID, Smartphone.brand, Smartphone.model, Smartphone.lowprice, Smartphone.highprice, Smartphone.image_URL FROM Favourite INNER JOIN Smartphone ON Favourite.userID = ? AND Favourite.smartphoneID = Smartphone.id',(userid,)).fetchall()

# 提取所有品牌到列表
brands = [fav[2] for fav in favourites]
# 统计品牌出现次数
brand_counter = Counter(brands)

# 输出结果
for brand, count in brand_counter.items():
    print(f"{brand}出现{count}次")

运行后就能得到Apple出现2次,Samsung出现1次这类符合预期的输出。

内容的提问来源于stack exchange,提问作者Fallen Hamster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:01:08