Разделить строку и подсчитать тераданные SQL - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы разделить столбец «ASPCT_VLU_NM» и количество появлений временных отметок в заданном временном интервале. Например, верните идентификатор, который имеет более 3 вхождений между 1537160520286 - 1537190520286.

В приведенном ниже примере это временные метки: The values which should be extracted from the column

The data in Teradata

1 Ответ

1 голос
/ 06 ноября 2019

Если вы используете Teradata 14 или более позднюю версию, тогда вы можете воспользоваться функцией STRTOK здесь:

SELECT
    ID
FROM yourTable
WHERE
    CAST(STRTOK(ASPCT_VLU_NM, ',', 4) AS BIGINT) BETWEEN 1537160520286 AND 1537190520286
GROUP BY
    ID
HAVING
    COUNT(*) > 3;

Примечание. Возможно, вы захотите серьезно рассмотреть вопрос об изменении дизайна таблицы, вособенно для , а не для хранения данных CSV в столбце ASPCT_VLU_NM. Вместо этого получите каждое значение CSV в отдельной строке / столбце.

...