【问题标题】:SQL error: "operator does not exist: character varying = bigint"SQL 错误:“运算符不存在:字符变化 = bigint”
【发布时间】:2021-12-09 14:48:30
【问题描述】:

我正在尝试检索有关歌手及其歌曲数量的 SQL 信息,仅选择至少有 2 首歌曲的歌手,并按组中歌曲数量从最大的歌曲开始排序记录。我不断收到此错误:

运算符不存在:字符变化 = bigint

我的代码:

SELECT * FROM songs
WHERE title = (SELECT COUNT(title) FROM songs)
GROUP BY singer
HAVING COUNT(title) >=2
ORDER BY singer, title DESC;

有人可以帮忙吗?

【问题讨论】:

  • 用特定的数据库标记你的问题是个好主意(sql是一个通用术语)。
  • where title = (select count(title) from ... ) 是什么意思? Mote,您不能将group byselect * 一起使用,因为group by 中不存在的列应该使用一些聚合函数进行聚合。您需要检查 DBMS 文档中的语法。

标签: sql datatable bigint


【解决方案1】:

嗯,您将标题 (varchar) 与计数 (bigint) 进行比较,这是没有意义的。试试这个:

SELECT * FROM songs
GROUP BY singer
HAVING COUNT(title) >= 2
ORDER BY singer, COUNT(title) DESC

【讨论】:

    猜你喜欢
    • 2021-11-12
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 2021-05-02
    • 2018-05-05
    • 2019-07-03
    • 2012-05-19
    相关资源
    最近更新 更多