Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Unable to find error in the query – Snowflake

Error: SQL compilation error: error line 105 at position 8 invalid identifier ‘INTENT’.
There are two CTE’s, and then the select statement. First CTE works fine if run separately, the error is in the second CTE. I am not sure what is causing the syntax error.

Thanks in advance.

WITH Test AS(
SELECT a.NUMBER
      ,b.Event_date 
      ,b.SESSION_ID  
      ,b.EVENT_TIMESTAMP 
      ,b.CURRENT_VIEW_NAME 
FROM PD_PRESENT.CUS.CUS_ISSUE as a
LEFT JOIN PD_PRESEN.CUS.REQ as b
ON a.NUMBER = B.NUMBER 
WHERE a.CREATED_DATE BETWEEN '2022-02-24 00:00:00.000' AND '2022-02-27 23:59:59.997'
AND b.Event_date BETWEEN '2022-02-24 00:00:00.000' AND '2022-02-27 23:59:59.997'
AND b.USER_GROUP = 'Customer'  
),

Consolidate AS(
SELECT DISTINCT 
             a.Number
            ,a.EVENT_DATE
            ,a.EVENT_TIMESTAMP
            ,a.Current_View_Name
            ,CASE 
            -- MOAT
                WHEN a.Current_View_Name LIKE '%CONDO%' THEN 'MOAT'
                WHEN a.Current_View_Name LIKE '%RENTER%' THEN 'MOAT'
                WHEN a.Current_View_Name LIKE '%FIRE%' THEN 'MOAT'
            -- BOAT
                WHEN a.Current_View_Name LIKE '%WATER%' THEN 'BOAT'
                WHEN a.Current_View_Name LIKE '%BOAT%' THEN 'BOAT'
            -- Error
                WHEN a.Current_View_Name LIKE '%Error%' THEN 'ERROR'
                        END AS "Intent"

            ,CASE
                WHEN a.Current_View_Name LIKE '%Mobile%' THEN 'MOBILE' ELSE 'DESKTOP'
            END AS "Source"
FROM Test as a
)
  
SELECT 
        a.NUMBER 
       ,a.Event_Date as "ProcessedDate"
       ,Intent as "TransactionIntent" -- **LINE 105**
       ,MIN(a.EVENT_TIMESTAMP) as "TransactionStart"
       ,MAX(a.EVENT_TIMESTAMP) as "TransactionEnd"
       ,'SelfService' AS "SourceType"
FROM Consolidate as a
WHERE a.Intent IS NOT NULL
GROUP BY a.NUMBER
        ,a.ProcessedDate
        ,a.Intent
   

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Snowflake treats unquoted identifiers as if they were uppercase. While quoted identifiers are case-sensitive. So you might need to specify your column alias as "INTENT" (all caps) to later refer to it without quotes.

This behavior can be changed with QUOTED_IDENTIFIERS_IGNORE_CASE should you need it.

QUOTED_IDENTIFIERS_IGNORE_CASE:

Specifies whether letters in double-quoted object identifiers are stored and resolved as uppercase letters. By default, Snowflake preserves the case of alphabetic characters when storing and resolving double-quoted identifiers. (See Identifier Resolution.) You can use this parameter in situations in which third-party applications always use double quotes around identifiers.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading