sql中不同字段对应不同筛选条件

qq_35811829 2016-12-09 11:00:37
String sql="(select AVG(mark),Count(stu_name),name from `all` group by name)union all(select count(*),name from `all`where mark<60 group by name)"
会出现下面的提示:

The used SELECT statements have a different number of columns
怎么才能让他们column一样?怎么做到使没有mark<60的分组,count=0
...全文
791 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 2016-12-09
  • 打赏
  • 举报
回复
把这个语句,在数据中直接跑,先不要用你的程序; 看看什么错误提示
qq_35811829 2016-12-09
  • 打赏
  • 举报
回复
还是不可以 Column 'count(*)' not found
卖水果的net 2016-12-09
  • 打赏
  • 举报
回复
select AVG(mark),Count(stu_name),name from `all` group by name union all select count(*),0, name from `all`where mark<60 group by name -- 加一个 0 就可以了
qq_35811829 2016-12-09
  • 打赏
  • 举报
回复
哇!谢谢! 成功了
中国风 2016-12-09
  • 打赏
  • 举报
回复
改为把<60用Count1栏位显示 e.g.
select AVG(mark) AS AvgMark,Count(stu_name) AS TotalCount,sum(CASE WHEN mark<60 THEN 1 ELSE 0 END) AS Count1,name from `all` group by name

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧