gpt4 book ai didi

mysql - sql 语法错误,其中有

转载 作者:行者123 更新时间:2023-11-29 20:35:17 25 4
gpt4 key购买 nike

只是想让这个查询工作,但这对我来说有点困难..

SELECT
*,
COUNT(*) AS total FROM_UNIXTIME(consume_time,'%Y-%m') AS fecha
FROM
coupon
HAVING
fecha = '2016-07'
GROUP BY
partner_id

最佳答案

  1. 您缺少 ,在选择列表中,AS total 之间和FROM_UNIXTIME .

  2. HAVING过滤分组集,而 WHERE在对记录进行分组之前对其进行过滤 - 在本例中您需要后者,但是像 fecha 这样的别名当 WHERE 时不可用条款被评估。因此,您需要重复WHERE中的基础表达式。子句:

    WHERE FROM_UNIXTIME(consume_time,'%Y-%m') = '2016-07'

    但是,这种方法不可进行优化调整,最好将您的文字转换为 consume_time 的范围。可以直接过滤(特别是如果表上有索引):

    WHERE consume_time >= UNIX_TIMESTAMP('2016-07-01')
    AND consume_time < UNIX_TIMESTAMP('2016-08-01')

    更好的是存储consume_time作为 MySQL 理解的时态数据类型,例如 TIMESTAMP (它恰好在内部存储为 Unix 时间戳),而不仅仅是一个整数——那么您就可以完全取消转换函数:

    WHERE consume_time >= '2016-07-01'
    AND consume_time < '2016-08-01'
  3. 由于您按 partner_id 进行分组,任何功能上不依赖于其的结果集列中的值将是不确定的。这可能不是您想要的。您真的想选择除按 partner_id 分组之外的所有列吗? ?

关于mysql - sql 语法错误,其中有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38823704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com