如何创建一个sql字符串以对分组依据的选定行进行计数

问题描述 投票:0回答:1

我正在尝试使用AUTHOR,TITLE,TEXT列查询mysql数据库,以按给定标题(按作者分组,例如如果A.C. Doyle撰写的《迷失的世界》有4个条目,M。Crichton撰写的《迷失的世界》有2个条目,则会返回一个列表:

[{author=Arthur Conan Doyle, title=The Lost World, count=4}, {author=Michael Crichton, title=The Lost World, count=2}]

到目前为止,我已经提出了这个字符串:

 jdbcTemplate.queryForList("SELECT author, title, COUNT(*) as count FROM Quote GROUP BY author")

它可以工作,但不仅返回与参数对应的条目(例如“迷失的世界”),而且还返回数据库中的所有条目,并且我所有优化搜索的尝试都失败了。

sql select count
1个回答
0
投票

也许您需要同时按作者和标题进行汇总:

jdbcTemplate.queryForList("SELECT author, title, COUNT(*) AS count FROM Quote GROUP BY author, title")

实际上,由于GROUP BY问题,您当前的查询只能在少数数据库上工作,例如MySQL或SQLite。这是原始查询:

SELECT author, title, COUNT(*) AS count
FROM Quote
GROUP BY author, title;
© www.soinside.com 2019 - 2024. All rights reserved.