2012-08-22 40 views
0

說我有如下表,計數比MySQL的

我想選擇所有以A開始所有以B

啓動例如名稱名稱的比率

Name 

ABC 
DEF 
VVV 
BBB 
BCD 
ZZZ 

所以輸出將是0.5。我想把這個輸出叫做'out'。 所以輸出應該是

out 

0.5 

幾乎我要的是

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

,但在一個單一的查詢。

回答

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顯示此行爲,您應該適當地陷阱和處理。

+0

讓我試試............. – Ank

+0

我想使用一個自聯接太..這將是更好.. – Ank

+0

+1完美地工作! @Ankur使用這個。 JOIN不可讀。 –

0

這個查詢會做你需要的東西:

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