mysql中的多次分组。(表中重复的信息,处理方式)

<![CDATA[
	  SELECT
  a2.plateNo,v.plateColor,d.name as depName,COUNT(a2.plateNo)*60*24 AS onlineTime,(TIMESTAMPDIFF(DAY,DATE_FORMAT(MIN(a2.createDate), '%Y-%m-%d'),DATE_FORMAT(MAX(a2.createDate), '%Y-%m-%d'))+1)*60*24 as totalTime
  ,COUNT(a2.plateNo)/(TIMESTAMPDIFF(DAY,DATE_FORMAT(MIN(a2.createDate), '%Y-%m-%d'),DATE_FORMAT(MAX(a2.createDate), '%Y-%m-%d'))+1)*100 as onlineRate
FROM
  (SELECT
    o.plateNo,o.createDate
    FROM
    onlinerecord o
  WHERE alarmType = "GpsOnline"
  GROUP BY plateNo,
    DATE_FORMAT(createDate, '%Y-%m-%d')) a2,department d,vehicle v
]]>
		<where>
			LEFT JOIN (SELECT * FROM vehicle GROUP BY plateNo) v ON a2.plateNo = v.plateNo

			LEFT JOIN department d ON v.depId = d.depId
mysql语句解释
(1)from中有一个表示a2
SELECT
 o.plateNo,o.createDate
  FROM
  onlinerecord o
  WHERE alarmType = "GpsOnline"
  GROUP BY plateNo,
  DATE_FORMAT(createDate, '%Y-%m-%d')

进行2次分组。 第一次分组按车牌号进行分组;
第二次分组按日期(精确到日)进行分组;
下面的left join(目的是:以a2为主体);
其中对vehicle进行按plateNo(其中的vehicle表中大量重复的信息。这样分组后,即可解决)

<![CDATA[]]>自己百度。这里我觉得可以去掉。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值