Is there a way other than SQL to cross-join two tables (Cartesian Product)?
I know that I can use SQL to cross-join two tables. However, that step is only a portion of my dataflow and I would like to use for the rest of the dataflow. Is there a way to cross-join in ETL or do I need to run my cross-join as a separate dataflow in SQL and use the output in my ETL?
Best Answers
-
Hi, @DougG ,
I did this recently. It isn't elegant, but it works just fine.
1) In each of the two tables you want to cross-join, add a whole number constant field using the "Add Constant" tiles. In both cases, assign some dummy value. It doesn't matter what value as long as you use the same value in both tiles.
2) Join the two datasets using your dummy constant fields
Note: this is equivalent to joining two tables in SQL using "on 1 = 1" in the join condition
1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
2
Answers
-
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'0 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
**Say 'Thanks' by clicking the thumbs up in the post that helped you.
**Please mark the post that solves your problem as 'Accepted Solution'0 -
Hi, @DougG ,
I did this recently. It isn't elegant, but it works just fine.
1) In each of the two tables you want to cross-join, add a whole number constant field using the "Add Constant" tiles. In both cases, assign some dummy value. It doesn't matter what value as long as you use the same value in both tiles.
2) Join the two datasets using your dummy constant fields
Note: this is equivalent to joining two tables in SQL using "on 1 = 1" in the join condition
1 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
2 -
I think you would be better off doing the SQL step, but I think it is possible in ETL as follows.
I utilized the tables from the cross join example on w3resource here
After adding these tables using excel upload to function as inputs, I used add constant to the company table of an ITEM_UNIT column containing string 'Pcs', to match the ITEM_UNIT field in the foods table.
I then did a full outer join on the ITEM_UNIT field.
I then did select columns to only return the desired fields of ITEM_NAME, ITEM_UNIT, COMPANY_NAME, and COMPANY_CITY.
This produced what I believe is the desired output.
1
Categories
- All Categories
- 1.8K Product Ideas
- 1.8K Ideas Exchange
- 1.6K Connect
- 1.2K Connectors
- 300 Workbench
- 6 Cloud Amplifier
- 9 Federated
- 2.9K Transform
- 102 SQL DataFlows
- 626 Datasets
- 2.2K Magic ETL
- 3.9K Visualize
- 2.5K Charting
- 753 Beast Mode
- 61 App Studio
- 41 Variables
- 692 Automate
- 177 Apps
- 456 APIs & Domo Developer
- 49 Workflows
- 10 DomoAI
- 38 Predict
- 16 Jupyter Workspaces
- 22 R & Python Tiles
- 398 Distribute
- 115 Domo Everywhere
- 276 Scheduled Reports
- 7 Software Integrations
- 130 Manage
- 127 Governance & Security
- 8 Domo Community Gallery
- 38 Product Releases
- 11 Domo University
- 5.4K Community Forums
- 40 Getting Started
- 30 Community Member Introductions
- 110 Community Announcements
- 4.8K Archive