【问题标题】:Error Code: 1305. FUNCTION tickets.IIF does not exist错误代码:1305。FUNCTION ticket.IIF 不存在
【发布时间】:2021-02-28 21:28:00
【问题描述】:

我尝试收集有关通信深度的一般统计数据:每个请求的每种类型的平均、最大和最小消息数。有 2 张桌子:

首先: ticketId,ticketQueueId,ticketCreatedDate

第二: articleId,articleCreatedDt,articleType(可以是 IN 或 OUT - 支持响应),ticketId

我是这样推理的:

SELECT 
AVG(qty_IN) avg_art_IN,
MAX(qty_IN) max_art_IN,
MIN(qty_IN) min_art_IN,
AVG(qty_OUT) avg_art_OUT,
MAX(qty_OUT) max_art_OUT,
MIN(qty_OUT) min_art_OUT
FROM 
(SELECT
ticketId, 
SUM(IIF(articleType='IN',1,0)) qty_IN,
SUM(IIF(articleType='OUT',1,0)) qty_OUT
FROM tickets.articles
GROUP BY ticketId
) AS t

错误代码:1305。FUNCTION ticket.IIF 不存在

【问题讨论】:

标签: mysql mysql-workbench


【解决方案1】:

使用 If 代替

SUM(IF(articleType='IN',1,0)) qty_IN

【讨论】:

  • 虽然这段代码可以为这个问题提供一个解决方案,但最好添加上下文来说明它为什么/如何工作。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。解释代码时,您也可能会得到用户的积极反馈/赞成。
【解决方案2】:

在mysql中你可以使用if函数https://dev.mysql.com/doc/refman/8.0/en/flow-control-functions.html#function_if

或大小写

SUM(case when articleType='IN' then 1 else 0 end) qty_IN,

【讨论】:

    猜你喜欢
    • 2021-08-15
    • 2016-11-28
    • 2022-01-25
    • 2014-08-17
    • 1970-01-01
    • 2017-03-17
    • 2013-11-09
    • 1970-01-01
    • 2014-04-20
    相关资源
    最近更新 更多