GROUP BY有活跃记录吗?

时间:2015-10-28 06:07:25

标签: php mysql codeigniter

我有一个表(url_analyst),其中包含以下信息:

id  |  user_id |  url_id |  date          | visits
----------------------------------------------------
1   |  2       |  5      |  2015-10-25    | 15
2   |  2       |  6      |  2015-10-25    | 18
3   |  2       |  5      |  2015-10-25    | 11
4   |  3       |  8      |  2015-10-25    | 22
5   |  3       |  9      |  2015-10-27    | 30
6   |  5       |  15     |  2015-10-25    | 15

等 我想要的是在新表格中获得更新/插入收入"收入" 收入计算1 $ / 10次访问

id  |  user_id |  total_urls |  date          | total_visits | earning
-------------------------------------------------------------------
1   |  2       |  3          |  2015-10-25    | 44           | 4.4$
2   |  3       |  1          |  2015-10-25    | 22           | 2.2$
3   |  3       |  1          |  2015-10-27    | 30           | 3.0$
4   |  5       |  1          |  2015-10-25    | 15           | 1.5$

如何使用活动记录查询方法对CodeIgniter执行此操作?可以使用COUNT个总URL然后GROUP BY user_id AND Date,更新收入来完成吗?

2 个答案:

答案 0 :(得分:2)

试试这个MySQL查询:

SELECT
    user_id, count(url_id), date, sum(visits) as 
    total_visits, concat(sum(visits)/10,'$') as earning 
FROM
    url_analyst 
GROUP BY
    user_id, date

答案 1 :(得分:0)

考虑group_by表中的所有url_analyst列,

$this->db->select("SUM(total_url)");//if required select other fields
$this->db->group_by("url_analyst.user_id");
$this->db->group_by("url_analyst.date");

如果您希望group_by中的任何列都有earning,则可以更改group_by子句中的表名

相关问题