mysql 如何通过一个sql语句搜出比例关系

例如 一个表格里有
商品,价格,日期 三个字段
a 10.2,20151008
a 9.2,20151009
a 7.2,20151010
b 11.2,20151008
b 10.2,20151008

我要搜 在历史上各个商品价格低于10¥的次数占该商品出现的总次数的百分比,应该如何写mysql语句呢?
谢谢了
搜出结果要类似
a 2/3
b 0/2

这样的sql语句怎么写呢?

select count(商品) from 表 group by 商品--取得每个商品的数目

--取得每个商品的数目
select count(商品) from 表 where 价格 <10 group by 商品 --取得低于10的每个商品数目

select c2 / c1 from (select n1 商品, c1 count(商品) from 表 group by 商品 ) A ,(select n2 商品, c2 count(商品) from 表 where 价格 <10 group by) B where A.n1 =B,n2

假设表名是ProductPrice, 商品,价格,日期字段名称分别是product、price、date。
”历史上“这个时间概念暂不清楚对应哪段时间,暂用某天之前来代替。这样统计sql如下:

 SELECT product, SUM(CASE WHEN price < 10 THEN 1 ELSE 0 END)/COUNT(price) percentage FROM  ProductPrice GROUP BY product;

结果类似:

 product percentage
a 0.8971
b 0.1341

如果不行用小数表示百分比,可以这么写把分子和分母的值作为字符串用"/"拼起来

  SELECT product, CONCAT(SUM(CASE WHEN price < 10 THEN 1 ELSE 0 END), '/', COUNT(price)) percentage FROM  ProductPrice GROUP BY product;

沙发的Sql在测试过程中有问题, 返回值变成了 二进制 类型, 解决办法 , 给 SUM(CASE WHEN price < 10 THEN 1 ELSE 0 END) 做类型转换成 char .

原因不详,有知道的吗?

图片说明
图片说明
图片说明