Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
I am looking for help on why the following SQL does not work in Power BI.
The SQL I have works fine when I test it in TOAD but when I try it in Power BI I get the following error.
DataSource.Error: Oracle: ORA-00911: invalid character
Details:
DataSourceKind=Oracle
DataSourcePath=d7ip_adg
Message=ORA-00911: invalid character
ErrorCode=-2147467259
Here is the SQL.
WITHq as ( select table1.name as label, count(table1.id) as count_id, row_number() over (order by count(table1.id) desc) as rn from table1 where table1.name like 'D%' group by table1.name) select case when rn <= 9 then label else 'Other' end label, sum(count_id) count_idfrom qgroup by case when rn <= 9 then label else 'Other' end;
IF I strip out the last part and run it like this it will return data but not group it up like I need.
select table1.name as label, count(table1.id) as count_id, row_number() over (order by count(table1.id) desc) as rn from table1 where table1.name like 'D%' group by table1.name
Solved! Go to Solution.
@lotussutol,
Please remove semicolon at the end of your command. I can import data to Power BI Desktop successfully when I execute this statement :
WITH q as ( select table1.name as label, count(table1.id) as count_id, row_number() over (order by count(table1.id) desc) as rn from table1 where table1.name like 'D%' group by table1.name) select case when rn <= 9 then label else 'Other' end label, sum(count_id) count_id from q group by case when rn <= 9 then label else 'Other' end
Regards,
Lydia
@lotussutol,
Please remove semicolon at the end of your command. I can import data to Power BI Desktop successfully when I execute this statement :
WITH q as ( select table1.name as label, count(table1.id) as count_id, row_number() over (order by count(table1.id) desc) as rn from table1 where table1.name like 'D%' group by table1.name) select case when rn <= 9 then label else 'Other' end label, sum(count_id) count_id from q group by case when rn <= 9 then label else 'Other' end
Regards,
Lydia
Thanks, that worked!
ugh...the formating made the SQL look really ugly.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.
User | Count |
---|---|
31 | |
31 | |
22 | |
16 | |
12 |
User | Count |
---|---|
21 | |
20 | |
16 | |
11 | |
10 |