所以我正在尝试运行具有倍数AND
和OR
s的查询。这是查询:
SELECT
COUNT(DISTINCT t.id)
FROM tags t
WHERE t.description LIKE '%Name%'
AND t.description LIKE '%On-boarding%'
OR t.description LIKE '%Pending Approval Inventory%'
AND t.title = 'follow-up'
AND t.created_at >= now() ::date;
我今天只想要唱片。问题是来自其他日期的记录!=今天也包含在计数中。我无法弄清楚如何调试此查询...非常感谢任何建议。
答案 0 :(得分:0)
我想你想要这个:
SELECT
COUNT(DISTINCT t.id)
FROM tags t
WHERE ((t.description LIKE '%Name%'
AND t.description LIKE '%On-boarding%')
OR t.description LIKE '%Pending Approval Inventory%')
AND t.title = 'follow-up'
AND date_trunc('day', t.created_at) = date_trunc('day', now());
我还在描述过滤器周围添加了括号。我猜您想要一起申请名称和登机,或者是待批准库存。
但这里真正的技巧是使用date_trunc函数。
答案 1 :(得分:0)
SELECT
COUNT(DISTINCT t.id)
FROM tags t
WHERE t.description LIKE '%Name%'
AND (t.description LIKE '%On-boarding%' OR t.description LIKE %Pending Approval Inventory%')
AND t.title = 'follow-up'
AND CONVERT(DATE,t.created_at) = CONVERT(DATE,GETDATE());
这里我使用了T-SQL Build In Date函数进行强制转换,可能需要在PostgreSQL中使用一些内置函数。