【问题标题】:GROUP BY with active record?带有活动记录的 GROUP BY?
【发布时间】:2016-01-27 19:28:55
【问题描述】:

我有一个包含以下信息的表 (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 Total URL 然后 GROUP BY user_id AND Date 来完成,更新收入吗?

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    试试这个 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
    

    【讨论】:

    • 谢谢.. 我用它来创建 mysql 视图表
    【解决方案2】:

    考虑到url_analyst 表中的所有group_by 列,

    $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");
    

    如果您想在earning 的任何列上使用group_by,您可以在group_by 子句中更改表名

    【讨论】:

    • 谢谢,当我每次想更新我的表时都使用编码,所以改变它,通过 MySQL 视图表创建。现在完成了我的工作。但我有一个问题,现在点击 1 美元/10 次,但是当我点击 2 美元/10 次时,我无法在 mysql 视图上更改,所以几天后我想更改为编码计算。那个时候我可以使用你的帮助。再次感谢
    猜你喜欢
    • 2012-02-17
    • 2010-12-11
    • 2016-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2021-01-13
    • 2023-03-17
    相关资源
    最近更新 更多