假设我有下表,
我想选择以开头的所有名称与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%
'
但在一个查询中。
您可以执行以下操作:
select
(select count(*) from table where name like 'a%') / (select count(*) from table where name like 'b%');
这是一个SQL Fiddle。
请注意,如果除数为零,mySql 会将零合并为 null,结果值为null
. 这与说 Oracle 不同,它将抛出除数等于零的异常。
这是一个显示此行为的 SQL Fiddle,您可能应该适当地捕获和处理它。
此查询将满足您的需求:
SELECT ((SELECT COUNT(*) FROM `table` WHERE name LIKE 'A%') /
(SELECT COUNT(*) FROM `table` WHERE name LIKE 'B%')) AS `out`