sql - 如何将 GROUPBY 与 INNER JOIN 一起使用?
问题描述
我需要获取带有 total_of_occurance 的 company_id 和不同表中的 company_name 。我尝试了以下查询,但不知何故它抛出了一些错误。
SELECT tblhistorymaster.company_id, tblcompanymaster.company_short_name , COUNT(tblhistorymaster.company_id)
FROM tblhistorymaster
INNER JOIN tblcompanymaster ON tblcompanymaster.row_id = tblhistorymaster.company_id
GROUP BY tblhistorymaster.company_id
经过一番搜索,我发现我无法使用 GROUP by 。获得结果的最佳方法是什么。任何建议都会有很大帮助。
解决方案
嗯。. . GROUP BY
尝试在::中重复所有未聚合的列
SELECT hm.company_id, cm.company_short_name, COUNT(*)
FROM tblhistorymaster hm JOIN
tblcompanymaster cm
ON cm.row_id = hm.company_id
GROUP BY hm.company_id, cm.company_short_name;
如果cm.row_id
是主键或唯一的tblcompanymaster
,那么你也可以使用:
SELECT cm.row_id, cm.company_short_name, COUNT(*)
FROM tblhistorymaster hm JOIN
tblcompanymaster cm
ON cm.row_id = hm.company_id
GROUP BY cm.row_id;
这是有效的,因为GROUP BY
密钥被声明为唯一的。
推荐阅读
- java - 使用“对象”类型的引用访问类的数据成员
- javascript - Google Chrome 版本 76.0.3809.100(官方版本)(64 位)自动完成行为
- crystal-reports - 水晶报表。使用 1 个查询生成 3 个子报表
- java - 如何在每次社交登录时自动更新用户属性
- php - 为什么启动会话会导致我的函数生成的表单值在提交时发生变化?
- python-3.x - 具有开始和结束列的相同熊猫数据框中的有效合并重叠间隔
- linux - 无法在 aws ec2 linux 上切换到 jenkins 用户?
- android - 按需加载 Fragment UI
- c# - Asp 按钮禁用和数据加载文本功能仅执行一次
- javascript - JavaScript 源地图不适用于环境 Android WebView