sql顺序
关键:group by 中select只能出现group by 后面的属性与聚合函数的列
GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用
group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)
例:
错误:select model.title_id ,model.menu_seq from sys_menu as model group by model.title_id
正确:select model.title_id from sys_menu as model group by model.title_id
正确: select model.title_id,model.menu_seq from sys_menu as model group by model.title_id ,model.menu_seq
正确: select model.title_id from sys_menu as model group by model.title_id ,model.menu_seq
GROUP BY 与order by
执行顺序(先GROUP后order )------GROUP BY--------》order by
并且order by 属性必须在-GROUP BY中取值
当使用到GROUP BY分组时,可以把GROUP BY后面的属性就是一个新表,然后我们显示select 的属性与后面取的属性都要根椐GROUP BY里的数据进行取值

根椐以上分析就可以得出为什么order by 属性, 其中这个属性必须在group by属性中提取,因为先执行group by,而group by决定了显示的结果,然后order by 再根椐group by出来
的表进行排序,

select Distinct(convert(datetime,Convert(char,model.lotteryTime,111),111)) as name from game_draw_date as model
where model.status='6' group by model.lotteryTime order by name desc
where model.status='6' group by model.lotteryTime order by name desc
select distinct(convert(datetime,Convert(char, model.lotteryTime,111),111)) as name from game_draw_date as model group by model.lotteryTime
order by name desc
select Distinct(convert(datetime,Convert(char,model.lotteryTime,111),111)) as name from game_draw_date as model
where model.status='6' group by model.lotteryTime order by name desc
1.from子句用来组装不同数据源的数据
2,where子句用于基于指定条件的筛选
3.group by 子句用来将数据划分为多个分组
3.1:Distinct 对数据进行去重:注意Distinct 会改变结果集的的名称:所以要根椐
Distinct 后的结果集再进处理话要使用 as
如:
错:select DISTINCT convert(datetime,Convert(char,modle.lotteryTime,111),111) from game_draw_date as modle group by modle.lotteryTime order by modle.lotteryTime me desc
正确: select DISTINCT (convert(datetime,Convert(char,modle.lotteryTime,111),111)) as tiemKey from game_draw_date as modle group by modle.lotteryTime order by tiemKey desc
4,使用聚集函数进行计算():聚合函数对一组值执行计算并返回单一的值:如果有分组则对每组进行统计,如果没有分组则全个结果集进行统计(可以理解成:分组后每一个组相当于一个结果集)
count():满足条件的记录数
max():最大值。如果是字符串则按拼音排序
min():
sum():只能对数值类型做计算
avg():
5.使用having子句对分组进行筛选
6.计算所有表达式
7.使用order by 对所有结果集进行排序
而你的top 和like 都是属于where语句里面的,所以何时执行,一目了然
浙公网安备 33010602011771号