2 years ago
#72999

Pether Cll_
Cast date over null Id's, SQL
I have the following query
SELECT
originaltimestamp,
userid,
YEAR(CAST(SUBSTR(originaltimestamp, 1, 10) AS date)) AS year,
MONTH(CAST(SUBSTR(originaltimestamp, 1, 10) AS date)) AS month,
ROW_NUMBER() OVER (PARTITION BY userid ORDER BY originaltimestamp DESC) AS RN
FROM
table1
WHERE
userid IS NOT NULL
AND CAST(SUBSTR(originaltimestamp, 1, 10) AS date) BETWEEN date '2018-01-01' AND date '2021-12-31'
GROUP BY
1, 2, 3, 4
But now if I try to count all Id's (not null and null), I get the following
SELECT
originaltimestamp,
userid,
YEAR(CAST(SUBSTR(originaltimestamp, 1, 10) AS date)) AS year,
MONTH(CAST(SUBSTR(originaltimestamp, 1, 10) AS date)) AS month,
ROW_NUMBER() OVER (PARTITION BY userid ORDER BY originaltimestamp DESC) AS RN
FROM
table1
WHERE
CAST(SUBSTR(originaltimestamp, 1, 10) AS date) BETWEEN date '2018-01-01' AND date '2021-12-31'
GROUP BY
1, 2, 3, 4
I get the following error
INVALID_CAST_ARGUMENT: Value cannot be cast to date:
Why doesn't it work when I exclude the condition
WHERE userid IS NOT NULL
And how can I count null ids?
sql
sql-server
null
0 Answers
Your Answer