计算mysql的比例

时间:2012-08-22 22:08:53

标签: mysql count

说我有下表,

我想选择以A开头的所有名称与以B开头的所有名称的比率

例如

Name

ABC
DEF
VVV
BBB
BCD
ZZZ

所以输出为0.5。我想将输出称为“输出”。 所以输出应该是

out

0.5

几乎我想要的是

Select count(*) from table where name like 'A%' / select count(*) from table where name like 'B%

但在一个查询中。

2 个答案:

答案 0 :(得分:4)

您可以执行以下操作:

select
   (select count(*) from table where name like 'a%') / (select count(*) from table where name like 'b%');

这是SQL Fiddle

请注意,如果除数为零,mySql会将零合并为空,结果值为null。这与Oracle不同,后者将抛出除数等于零异常。

Here's a SQL Fiddle显示此行为,您可能应该陷阱并妥善处理。

答案 1 :(得分:0)

此查询将满足您的需求:

SELECT ((SELECT COUNT(*) FROM `table` WHERE name LIKE 'A%') /
            (SELECT COUNT(*) FROM `table` WHERE name LIKE 'B%')) AS `out`