The code you put in the question fails with error
The value specified for event attribute or predicate source,
"sqlserver.query_hash", event, "sql_statement_completed", is invalid.
This is because this attribute is defined as uint64.
If I try the query
SELECT *
FROM sys.objects
I see a query hash of 0x3051A61E567B7EF5. Getting the unsigned 64 bit integer equivalent with the below...
DECLARE @QueryHash BINARY(8) = 0x3051A61E567B7EF5
SELECT
CASE
WHEN CONVERT(BIGINT, @QueryHash) < 0
THEN CONVERT(DECIMAL(20,0), CONVERT(BIGINT, @QueryHash)) + 18446744073709551616
ELSE CONVERT(DECIMAL(20,0), CONVERT(BIGINT, @QueryHash))
END AS UnsignedInt64
Gives 3481746636164267765.
The below works fine and captures the query as expected
CREATE EVENT SESSION [MySession] ON DATABASE
ADD EVENT sqlserver.sql_statement_completed(
ACTION(sqlserver.client_app_name,sqlserver.client_hostname,sqlserver.num_response_rows,sqlserver.query_hash,sqlserver.username)
WHERE [sqlserver].[query_hash] = 3481746636164267765
)
ADD TARGET package0.ring_buffer(SET max_events_limit=(100),max_memory=(1024))
WITH (STARTUP_STATE=ON)
So in your case you should be able to use 14983093432990003317
0xCFEEA417EDDB7075to the unsigned int 64 value required for that predicate? Maybe14983093432990003317then? Untested by me