2 u010455322 u010455322 于 2014.05.08 17:18 提问

关于mysql关联多列查询,分组查询并输出每组数据的中值

imei phone key value
863184021544828 lenovoa788t c14 484
355799050650579 samsungi9500 c14 542
355799050650579 samsungi9500 c14 623
868331013987821 huaweiu9508 c14 523
868331013987821 huaweiu9508 c14 498
868331013987821 huaweiu9508 c14 518
863578029407666 coolpad8076 c14 1314
353918051700819 lgnexus 4 c14 766
353918051700819 lgnexus 4 c14 525
353918051700819 lgnexus 4 c14 444
353918051700819 lgnexus 4 c14 512
353918051700819 lgnexus 4 c14 499
一个表有4列,分别表示imei,机型,某个统计key以及具体值
我现在想获取比如某个机型的统计value的中值是多少(不是平均值)并排序
另外我想在上述结果的基础上分析同一种机型下根据每个手机(根据imei)分组,每组的中值又是多少。
有上万条数据,同一个手机可能有N条数据。一个机型下可能又有M台手机。
冥思苦想半天,大学学的那点sql忘个精光。求大神指导,感谢~

1个回答

shendixiong
shendixiong   2014.05.09 16:30

// 查询某个机型的value总和

select sum(ptt.value) from phone_type_tab ptt where ptt.phone= '要查询的手机类型';

// 查询每个机型的value总和

select sum(ptt.value),ptt.phone from phone_type_tab ptt group by phone 

应该是你说的这个意思吧

u010455322
u010455322 不是哦,是某个机型下,这个value的中值。就是排序后中间那个数的值是多少。以机型分组的中值,然后在这个基础上再以是否同一个机器分组中值。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!