在一个查询中获得百分比

时间:2012-02-22 10:20:27

标签: mysql average

我需要像

这样的东西
$query = SELECT COUNT(id) as user_in FROM <table_user> WHERE user= 11;
$query = SELECT COUNT(id) as total FROM <table_user> WHERE 1 ;
$percetage = $user_in / $total * 100;`

在一个查询中。

请帮忙

4 个答案:

答案 0 :(得分:2)

SELECT
  SUM(IF user=11,1,0)*100/COUNT(*) AS percentage
FROM table_user;

答案 1 :(得分:0)

这是一个很简单的

SELECT SUM(IF(user=11,1,0))/COUNT(id) AS percentageAsDecimal FROM <table_user>

只是一个警告,如果没有行,这将会出错,因为它将被除以0

答案 2 :(得分:0)

SELECT COUNT(id) / (SELECT COUNT(*) FROM table_user) * 100 AS PERCENTAGE
FROM table_user;
WHERE user= 11;

答案 3 :(得分:0)

为了坚持使用2个初始陈述的方法,您可以合并您的陈述(笛卡尔积)并进行计算。

SELECT your_calculation FROM select_statement1, select_statement2;

在您的示例中,这转换为

SELECT 100.0*user_in/total FROM
(SELECT COUNT(id) as user_in FROM <table_user> WHERE user= 11),
(SELECT COUNT(id) as total FROM <table_user> WHERE 1);

我刚用SQLite测试过,mySQL应该差不多了。在SQLite 100.0中,为了避免整数除法很重要!