【问题标题】:How to further filter GROUP BY record in mysql?如何在mysql中进一步过滤GROUP BY记录?
【发布时间】:2015-09-11 06:48:08
【问题描述】:

请检查我想要查询 ID“43”的完整 ROW(以及另一个 nic_id max query_id 行)的图像,但它只给我最大 query_id,我尝试了不同的查询,例如:

SELECT `Query_id`, `nic_id`, `date`, `subject`, `followup_no`, MAX(Query_id) as queryid FROM `sales_queries` GROUP BY `nic_id` HAVING MAX(`Query_id`)

SELECT `Query_id`, `nic_id`, `date`, `subject`, `followup_no`, MAX(Query_id) as queryid FROM `sales_queries` WHERE  GROUP BY `nic_id` HAVING MAX(`Query_id`)

SELECT  `Query_id`, `nic_id`, `date`, `subject`, `followup_no`, MAX(Query_id) as mxqueryid    FROM `sales_queries`WHERE `Query_id` = (SELECT MAX(`Query_id`) FROM `sales_queries`) GROUP BY `nic_id` 

当客户再次访问时,使用不同主题的相同 nic_id 会增加(+1)。

我想要完整的 43 行,主题为“Registration4”,日期等

不是这个,应该是 Registration4 日期:2015-09-11

【问题讨论】:

    标签: php mysql group-by


    【解决方案1】:

    this question 的答案类似,您可以使用子查询和连接来获取您想要的结果。类似于以下的东西应该可以工作:

    SELECT `Query_id`, `nic_id`, `date`, `subject`, `followup_no`
    FROM `sales_queries` AS sq
    INNER JOIN (
        SELECT MAX(`Query_id`) AS mId
        FROM `sales_queries`
        GROUP BY `nic_id`
    ) AS subsq ON subsq.mId = sq.Query_id
    

    【讨论】:

    • 先生,请检查我的以下答案,并请帮助我如何做到这一点。非常感谢您的帮助。
    • 我建议你在一个新问题中提出这个问题,在上一个问题中链接到它,然后从你的新问题中链接回来。还要扩展您要查找的内容,因为我无法从您下面的描述中看出您需要哪些额外信息;你得到什么结果?你想要什么结果?您提供了屏幕截图,因此您上面的原始问题在这方面非常好。
    • 正如你问我的,我问了另一个问题,等待你的回复。非常感谢
    • 亲爱的本杰明正在等待您的回复。 stackoverflow.com/questions/32695088/…
    • 亲爱的 Benjamin 仍在等待您的回复 :( stackoverflow.com/questions/32695088/…
    【解决方案2】:

    我在三个不同的页面中使用以下三个查询。我想要 IF MAX(Query_id) 在特定日期范围内不可用,然后忽略它。

    /////////////   QUERY 1  \\\\\\\\\\\\\\\\\\\\\
    

    $sql="SELECT * FROM sales_queries AS sq INNER JOIN (SELECT MAX(Query_id) AS mId FROM sales_queries WHERE follow_up > '".$s_date."' GROUP BY nic_id ) AS subsq ON subsq.mId = sq.Query_id";

    ////////////查询2 \\\\\\\\\\\

    $sql="SELECT * FROM sales_queries AS sq INNER JOIN (SELECT MAX(Query_id) AS mId FROM sales_queries WHERE follow_up BETWEEN '".$s_date."' AND '".$e_date."' GROUP BY nic_id ) AS subsq ON subsq.mId = sq.Query_id";

    ////////////查询3 \\\\\\\\\\\

    $sql="SELECT * FROM sales_queries AS sq 内连接(SELECT MAX(Query_id) AS mId FROM sales_queries WHERE follow_up BETWEEN '".$s_date."' AND '".$e_date."' GROUP BY nic_id ) AS subsq ON subsq.mId = sq.Query_id";

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-11
      • 2016-04-03
      • 1970-01-01
      • 2018-09-18
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多