Sheel,
What you have to keep in mind with a filter, is that WFA is trying to associate your selected columns with actual database columns. So the names chosen in the select statement need to be exactly what WFA wants them to be.
Below is an example error. I purposely caused this error by making one of the select variables to be called node.namedd instead of node.name. You will then see in the error messasge, a list of required names to be returned.
"Filter 'Filter aggregates by delegation to Storage Virtual Machine' returned attributes does not contain all natural keys. Filter's returned attributes '[name, node.cluster.primary_address, node.namedd]' , dictionary entry natural keys '[node.cluster.primary_address, name, node.name]"
Here was the select part of my statement:
SELECT
aggr.name,
node.name AS 'node.namedd',
cluster.primary_address AS 'node.cluster.primary_address'
The correct statement:
SELECT
aggr.name,
node.name AS 'node.name',
cluster.primary_address AS 'node.cluster.primary_address'
I hit this error 90% of the time, but once I understand the natural keys, can quickly change the SQL Query around to fit what they are asking for.
For reference, check out one of the certified filters. I used 'Filter aggregates by delegation to Storage Virtual Machine' in this post.