我正在自行加入的表中构建摘要,以便计算某些值对应的行(在TikiWiki CMS,跟踪器应用程序中)。但我有一个案例,其中有两列可以具有相同的值,我需要SQL以特定顺序获取第一个非NULL值。
以下是我工作的表tiki_tracker_item_fields
的示例:
itemId | fieldId | value
==========================
41 | 236 | Paris
41 | 213 | Paris
14 | 236 |
14 | 213 | Paris
25 | 236 | Paris
25 | 213 |
在查询中,我想计算所有以“Paris”为值的行,在字段Id 236或字段ID 213中。此处的结果应为:3。
有我的要求:
SELECT COUNT(*) AS sp_actions
FROM
`tiki_tracker_item_fields` AS actions
WHERE
COALESCE(
actions.fieldId = 236,
actions.fieldId = 213
)
AND actions.value = 'Paris'
所以当我在第236场有'巴黎'时这是有效的,但是当我在巴黎有第213场时却没有。
我甚至不确定我是否可以这样使用COALESCE,我发现的所有例子都将COALESCE放在SELECT语句中。
然后是性能问题......