云迈博客

您现在的位置是:首页 > 灌水专栏 > 正文

灌水专栏

sql 总结

zero2020-11-09灌水专栏377
#########orderby和groupby一起使用的注意事项1.orderby的列,必须是出现在groupby子句里的列2.orderby要放在groupby的后面

### sql语句select group by order by where一般先后顺序

写的顺序:select … from… where…. group by… having… order by..
执行顺序:from… where…group by… having…. select … order by…

### ###### order by和group by一起使用的注意事项

1.order by 的列,必须是出现在group by 子句里的列
2.order by 要 放在 group by的 后面

distinct 与 group by

去重和统计是用 distinct 还是 group by,distinct 去重的,而group by 则是用来聚合统计的。单纯的去重操作使用distinct,速度是快于group by的。

获取已下单用户统计,示例数据
[ { "uid": "2190", "oid": "158" }, { "uid": "2190", "oid": "159" }, { "uid": "2190", "oid": "160" }, { "uid": "2190", "oid": "161" }, { "uid": "2190", "oid": "167" }, { "uid": "2193", "oid": "169" }, { "uid": "2193", "oid": "170" }, { "uid": "2193", "oid": "177" }, { "uid": "2193", "oid": "178" } ]
使用 group by uid 结果
{ "uidcount": "5" }, { "uidcount": "4" }
使用 count(distinct uid) 结果
{ "uidcount": "2" }

##### #### ### CAST(x AS type) 转换数据类型函数

字符串日期转换为日期:SELECT CAST(“2017-08-29” AS DATE);
-> 2017-08-29

使用 sum 统计精度丢失,数值类型转换
$total = pdo_fetchcolumn(‘SELECT cast(SUM(fee) as DECIMAL(10,2)) as fee FROM ‘. tablename(‘mc_credits_recharge’) .’ WHERE openid=:openid AND uniacid=:uniacid AND type='credit' AND status=1’, array(‘:openid’ => $openid, ‘:uniacid’ => $weid));

##### #### #### GROUP_CONCAT 分组查询 group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])

GROUP_CONCAT(字段) 查询出来的字段会默认使用英文逗号分隔,查询id集合很有用

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~