我是新来的,一切都有点混乱,所以我要原谅自己,如果我在这里做错了什么。
我通常使用MySQL或有时使用甲骨文,但现在我必须切换到Teradata.com。
我只需将其转换为:
SELECT FLOOR(DATEDIFF(NOW(),`startdate`)/365.25) AS `years`,
COUNT(FLOOR(DATEDIFF(NOW(),`startdate`)/365.25)) AS `numberofemployees`
FROM `employees`
WHERE 1
GROUP BY `years`
ORDER BY `years`;
变成了特拉塔。
如果有人能帮忙,那就太好了:)
发布于 2021-12-20 00:26:36
与Teradata中的查询等价的内容是:
SELECT FLOOR((CURRENT_DATE - startdate)/365.2500) AS years,
COUNT(FLOOR((CURRENT_DATE - startdate )/365.2500)) AS numberofemployees
FROM employees
--WHERE 1
GROUP BY years
ORDER BY years;
CURRENT_DATE相当于NOW() (如果没有时间部分,DATEDIFF部分无论如何都会忽略它)。在Teradata中,您可以简单地减去日期,以便在两天之间得到日期。另外,我在365.25末尾添加了两个零,迫使Teradata将除法计算为4位小数点,因为MySQL似乎就是这样执行的(https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html#:~:text=In%20division%20performed%20with%20/%2C%20the%20scale%20of%20the%20result%20when%20using%20two%20exact-value%20operands%20is%20the%20scale%20of%20the%20first%20operand%20plus%20the%20value%20of%20the%20div_precision_increment%20system%20variable%20(which%20is%204%20by%20default) )。
但是,我不确定是否完全理解了你原来的问题:
numberofemployees
https://stackoverflow.com/questions/70032101
复制相似问题