说我有下表,
我想选择以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%
“
但在一个查询中。
答案 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`