我想这是不可能的,但我很想看看是否有人能证明我错了。我想得到一个查询的输出,该查询使用时间函数和concat来生成输出列的名称。如果这是在代码中生成的,这不会是一个问题,但它的sql输出被发送给分析师,我希望它是尽可能清晰的,他们。
SELECT
source_domain,
sum(IF(created_at BETWEEN now() - INTERVAL 30 MINUTE AND now() - INTERVAL 15 MINUTE,1,0)) concat(now() - INTERVAL 30 MINUTE,'-', now() - INTERVAL 15 MINUTE),
FROM data_set
GROUP BY 1
结果如下:
| source_domain | 2020-06-29 12:00:00 - 2020-06-29 12:15:00 |
+---------------+-------------------------------------------+
| abc.com | 37
1条答案
按热度按时间jdgnovmf1#
最接近的是name\u const()。但它不会按照您描述的方式工作,因为参数必须是常量字符串,而不是表达式。而且文档上说它只供mysql内部使用,你不应该在应用程序代码中使用这个函数。
不能在一个查询中执行此操作。必须执行一个查询才能生成将用作第二个查询的列标题的字符串:
获取该查询的结果,然后在后续查询中使用它:
你可以在我放置的时间范围内插入字符串
<alias>
上面。与所有标识符一样,在准备查询之前,它必须是sql查询字符串的一部分。