错误说明了一切,您没有按
MEMBERS.MEMBER_ID和分组
MEMBERS.MEMBER_NAME。
SELECt MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME , COUNT(personal_training_sessions.session_id) FROM MEMBERS JOIN personal_training_sessions ON personal_training_sessions.member_id = members.member_id GROUP BY MEMBERS.MEMBER_ID, MEMBERS.MEMBER_NAME
您需要 每个 成员的个人会话 数 ,因此您需要按成员信息分组。
基本的(当然,它可以变得更加复杂)GROUP BY,SELECt查询是:
SELECT <column 1>, <column n> , <aggregate function 1>, <aggregate function n> FROM <table_name> GROUP BY <column 1>, <column n>
一个聚集函数之中,肯怀特说,像
MIN(),
MAX(),
COUNT()等你GROUP BY 所有 未聚合的列。
如果您的
MEMBERS表在上是唯一的
MEMBER_ID,这将仅按预期工作,但是我怀疑是基于您的查询。为了澄清我的意思,如果你的表是不是唯一的
MEMBER_ID,然后你不计算每会话数
MEMBER_ID,但每个会话的数量
MEMBER_ID
和
每
MEMBER_NAME。如果它们是1:1的关系,那么实际上是同一件事,但是如果
MEMBER_NAME每个可以有多个s,
MEMBER_ID则不是。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)