ym1123568700 2024-04-19 09:07 采纳率: 50%
浏览 2

创建一个查询,统计出预约人数高于平均预约人数的科室,结果显示“科室名称”、“预约人数”字段。(相关搜索:创建一个查询)

SELECT tsubscribe.科室ID 科室名称,COUNT(tsubscribe.科室ID) 预约人数
FROM tsubscribe
GROUP BY 科室名称
HAVING 预约人数>(SELECT AVG(tsubscribe.科室ID)
FROM
(SELECT COUNT(tsubscribe.科室ID) 预约人数
FROM tsubscribe
GROUP BY tsubscribe.科室ID) AS avg_ts )

img


报错是上面这样

img


请问怎么解决呢?

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-19 09:10
    关注

    引自免费微信小程序:皆我百晓生

    看起来您在尝试编写一个SQL查询,用于找出预约人数超过平均预约人数的科室。根据提供的错误信息,问题在于子查询返回了多行数据,而HAVING子句期望的是单个值。为了解决这个问题,我们需要计算整个数据库中的平均预约人数,而不是按科室分组后的平均数。

    下面是修正后的SQL查询:

    SELECT tsubscribe.科室ID AS 科室名称, COUNT(tsubscribe.科室ID) AS 预约人数
    FROM tsubscribe
    GROUP BY tsubscribe.科室ID
    HAVING COUNT(tsubscribe.科室ID) > (SELECT AVG(tsubscribe2.科室ID)
                                          FROM (
                                              SELECT COUNT(*) AS 预约人数
                                              FROM tsubscribe AS tsubscribe2
                                          ) AS avg_subscription_count);
    

    在这个版本中,我们首先计算总的预约数量(不考虑科室),然后将这个总数除以科室的数量得到平均预约人数。这确保了子查询只返回一个值,从而解决了错误。

    不过,这里有一个潜在的问题:当科室数量为0时,平均预约人数可能不准确,因为它可能会除以零。为了避免这种情况,可以使用IFNULL或COALESCE函数处理可能的NULL值。以下是修改后的查询:

    SELECT tsubscribe.科室ID AS 科室名称, COUNT(tsubscribe.科室ID) AS 预约人数
    FROM tsubscribe
    GROUP BY tsubscribe.科室ID
    HAVING COUNT(tsubscribe.科室ID) > (SELECT IFNULL(AVG(tsubscribe2.科室ID), 0)
                                          FROM (
                                              SELECT COUNT(*) AS 预约人数
                                              FROM tsubscribe AS tsubscribe2
                                          ) AS avg_subscription_count);
    

    这段代码首先检查平均预约人数是否为NULL,如果是,则将其替换为0,这样就不会有除以零的情况发生。

    请尝试执行这个修正后的查询,它应该能正确地返回预约人数高于平均预约人数的科室及其预约人数。如果有任何其他问题,随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月19日

悬赏问题

  • ¥15 如何用数码管显示学号(相关搜索:单片机)
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题