select .. group by

sql 复制代码
<select id="selectLostTable" resultType="java.lang.Long">
    SELECT COUNT(0)
    FROM (
        SELECT trade_type,
               store_code,
               material_code,
               ANY_VALUE(store_name)        AS store_name,
               ANY_VALUE(material_name)     AS material_name,
               SUM(sub_quantity)            AS sub_quantity,
               ANY_VALUE(sub_unit)          AS sub_unit,
               SUM(main_quantity)           AS main_quantity,
               ANY_VALUE(main_unit)         AS main_unit,
               ANY_VALUE(materiel_classify) AS materiel_classify,
               ANY_VALUE(specification)     AS specification,
               ANY_VALUE(production_date)   AS production_date,
               ANY_VALUE(warranty_day)      AS warranty_day,
               ANY_VALUE(warranty_date)     AS warranty_date,
               ANY_VALUE(purchase_sale_save) AS purchase_sale_save,
               ANY_VALUE(order_date)        AS order_date
        FROM wms_store_ledger
        WHERE trade_type IN ('product_in_store', 'get_material')
          AND materiel_classify != 'P'
        GROUP BY trade_type, store_code, material_code
    ) AS tmp_count
</select>

group by 分组的sql,select的字段,必须遵守"选分组列或聚合"规则。

要获取其他行数据,如果是分组后,该列数据肯定一致,或无所谓取哪个,可以用 ANY_VALUE() 告诉数据库"随便拿一个"。

相关推荐
其实防守也摸鱼41 分钟前
Cylab在线靶场——挑战图书馆初学者指南
服务器·前端·数据库·chrome·安全·网络安全·靶场
邪修king2 小时前
Re:Linux 系统篇(三十五):进程间通信Chapter2:从匿名管道到进程池:Linux 进程间通信实战(深度理解「先描述,再组织」)
java·linux·运维
拆房老料3 小时前
【第四部分:Agentic 智能体设计模式】16. 一个 Prompt 搞不定复杂任务?试试 Prompt Chaining
java·前端·人工智能·设计模式·prompt
运维行者_4 小时前
应用性能监控怎么选?从调用链到用户体验的五个能力维度
运维·服务器·数据库·人工智能·mysql·性能优化·应用性能监控
张张123y4 小时前
后端第十四课:Agent 记忆系统(让 Agent 记住上下文和用户,跨会话不健忘)
java·大数据·人工智能·python·agent·记忆
曹牧8 小时前
C#:空合并运算符
java·前端·数据库
布吉岛的石头8 小时前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
golang学习记9 小时前
IDEA 2026年的玩法已经完全不同
java·ide·intellij-idea
小羊没烦恼!9 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php