计算mysql列中的行数

时间:2014-03-28 18:57:09

标签: mysql sql database database-design database-schema

我的桌子看起来像,

 | user_id | url | is_bookmark | is_history    <== schema

示例数据:

[2, "http://www.stackoverflow.com", 1 ,0]
[3, "http://www.stackoverflow.com", 1 ,0]
[4, "http://www.stackoverflow.com", 1 ,1]
[5, "http://www.php.net", 1 ,0]

并需要下表,

 |  url | total_bookmark | total_history    <== schema

此表的样本数据

["http://www.stackoverflow.com",  3 , 1] 
["http://www.php.net",  1 , 0] 

我使用2个查询执行此操作,但可以在1中完成吗?

3 个答案:

答案 0 :(得分:3)

试试这个:

 select url , count(*) total_bookmark, sum(is_history) total_history
 from yourtable
 group by url

DEMO

答案 1 :(得分:2)

在列标签和历史记录上使用汇总函数sum

如果其中任何一个未通过图书标记或历史记录状态设置,count将无效,sum无效。

试试这个:

select 
    url,
    sum( is_bookmark ) total_bookmark,
    sum( is_history ) total_history
from table
group by url

答案 2 :(得分:1)

你是说这个吗?

select count(*) as total,is_bookmark,url,sum(is_history) total_history
from table
group by `url`