2401_85360061 2024-06-16 02:11 采纳率: 0%
浏览 4

MySQL 第一题可以整合到一张表上显示吗 单个问题还可以 多了不会组合

img


求帮忙 第一题做不出来不会合并 明天早上好晚上吃什么🤔。嗯。我还不相信这个灯

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-16 02:11
    关注

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

    针对你的问题,我们可以将两个需求整合到一个查询中,通过使用GROUP BYHAVING子句来实现。但是,由于你的第二个需求(筛选特定日期范围内的记录)是基于所有记录的,而第一个需求(统计每个车间的实验次数)则需要聚合数据,我们可以在一个查询中先进行聚合,然后在外部查询中应用日期过滤。

    这里是解决第一题的SQL语句示例:

    SELECT r.workid, COUNT(r.recid) AS experiment_count, r.rec_date
    FROM records r
    WHERE r.rec_date BETWEEN '2023-01-01' AND '2023-04-01'
    GROUP BY r.workid, r.rec_date
    HAVING COUNT(r.recid) > 0;
    

    但是,这里有一个小问题,上述查询会为每个车间在每个符合条件的日期返回一行结果。如果你的需求是统计整个日期范围内每个车间的实验次数,而不区分具体哪一天,那么应该修改GROUP BY子句,仅按workid分组,如下所示:

    SELECT r.workid, COUNT(r.recid) AS experiment_count
    FROM records r
    WHERE r.rec_date BETWEEN '2023-01-01' AND '2023-04-01'
    GROUP BY r.workid;
    

    这将返回每个车间的实验总数,只要这些实验发生在指定的日期范围内。

    对于第二题,即查询特定日期范围内的所有实验记录,可以直接使用如下的SQL语句:

    SELECT *
    FROM records
    WHERE rec_date BETWEEN '2023-01-01' AND '2023-04-01';
    

    这样,你就可以分别得到每个车间的实验次数以及特定日期范围内的所有实验记录。如果需要进一步的帮助或有其他问题,请随时告诉我。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月16日

悬赏问题

  • ¥20 关于游戏c++语言代码问题
  • ¥15 如何制作永久二维码,最好是微信也可以扫开的。(相关搜索:管理系统)
  • ¥15 delphi indy cookie 有效期
  • ¥15 labelme打不开怎么办
  • ¥35 按照图片上的两个任务要求,用keil5写出运行代码,并在proteus上仿真成功,🙏
  • ¥15 免费的电脑视频剪辑类软件如何盈利
  • ¥30 MPI读入tif文件并将文件路径分配给各进程时遇到问题
  • ¥15 pycharm中导入模块出错
  • ¥20 Ros2 moveit2 Windows环境配置,有偿,价格可商议。
  • ¥15 有关“完美的代价”问题的代码漏洞