Mysql 关于SQL查询(具有和计数)

Mysql 关于SQL查询(具有和计数),mysql,sql,database,oracle,rdbms,Mysql,Sql,Database,Oracle,Rdbms,我在Coursera上学习一门数据库课程,遇到了一个问题。如果有人能帮我的话,非常感谢 在下表中,问题是: '按计划编号列出使用的平均资源数(NumberFld)。 仅包括位置号L100。取消少于两个的计划 包含位置号L100'的事件行 我的答案是: SELECT PlanNo, AVG(NumberFld) AS AvgNumResources FROM EventPlanLine WHERE LocNo = 'L100' GROUP BY PlanNo

我在Coursera上学习一门数据库课程,遇到了一个问题。如果有人能帮我的话,非常感谢

在下表中,问题是:

'按计划编号列出使用的平均资源数(NumberFld)。 仅包括位置号L100。取消少于两个的计划 包含位置号L100'的事件行

我的答案是:

SELECT PlanNo, AVG(NumberFld) AS AvgNumResources  
FROM EventPlanLine  
WHERE LocNo = 'L100'   
GROUP BY PlanNo                   
HAVING COUNT(LineNo) > 1;
SELECT PlanNo, AVG(NumberFld) AS AvgNumResources,    
COUNT(star) AS NumEventLines  
FROM EventPlanLine   
WHERE LocNo = 'L100'   
GROUP BY PlanNo  
HAVING COUNT(*) > 1;
而样本答案是:

SELECT PlanNo, AVG(NumberFld) AS AvgNumResources  
FROM EventPlanLine  
WHERE LocNo = 'L100'   
GROUP BY PlanNo                   
HAVING COUNT(LineNo) > 1;
SELECT PlanNo, AVG(NumberFld) AS AvgNumResources,    
COUNT(star) AS NumEventLines  
FROM EventPlanLine   
WHERE LocNo = 'L100'   
GROUP BY PlanNo  
HAVING COUNT(*) > 1;

我想我已经弄明白了样本答案的意思,但我想知道我的答案是否可行

一个六个,另一个半打
Count(*)
Count(LineNo)
应该在这里产生相同的结果,假设
LineNo
没有可以减少查询中计数的空值。感谢您的立即回复!是的,LineNo列中没有空值。每个平面都有自己的“线条1、2、3….”。所以我的答案更“优化”,对吧?不,你的答案并不比样本答案更优化。另外,您的答案不太清楚,因为读者需要知道/想知道
LineNo
是否可以为null。为什么LineNo中有null值很重要?难道这不应该被视为“不大于1”并因此被过滤掉吗?请原谅我的问题