IP Library Granted Patent US 12,411,861
Granted Patent B2
US 12,411,861 · App. 18/639,946 · Granted Sep 9, 2025

Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets

Inventors: Christian Eubank (Seattle, WA); Justin Talbot (Seattle, WA)
Assignee: Tableau Software, Inc.
G06F16/248G06F16/2282G06F16/24556G06F16/2456
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,411,861
App. No.
18/639,946
Granted
Sep 9, 2025
Kind
B2
Abstract

A computer receives user selection of data fields from a data source and user placement of the data fields into a shelf region of a user interface. The computer obtains a data model encoding the data source as a tree of related logical tables. Each logical table includes logical fields, each of which corresponds to either a dimension or a measure. The computer generates a dimension subquery for the dimensions. The computer also generates, for each measure, an aggregated measure subquery grouped by the dimensions. The computer forms a final query by joining the dimension subquery to each of the aggregated measure subqueries. The computer subsequently executes the final query and displays a data visualization according to the results of the final query.

Claims (72)

1. A method of generating data visualizations, comprising:

at a computer having a display, one or more processors and memory storing one or more programs configured for execution by the one or more processors:

receiving user selection of one or more data fields from a data source and user placement of the one or more data fields into a shelf region of a user interface, the data source including a plurality of data fields and each of the data fields is either a dimension or a measure;

in accordance with receiving the user selection and the user placement:

obtaining a data model encoding the data source as a tree of logical tables, each logical table including a respective one or more logical fields, each logical field corresponding to a measure data field or a dimension data field of the data source, wherein each edge of the tree connects two logical tables that are related;

generating a dimension subquery based on logical tables that supply the data fields for the dimensions;

generating, for each measure, based on the logical tables that supply the data fields for the respective measure, a respective aggregated measure subquery grouped by the dimensions;

forming a final query by joining, using the dimensions, the dimension subquery to each of the aggregated measure subqueries;

executing the final query against the data source to retrieve tuples that comprise distinct ordered combinations of data values for the data fields; and

generating and displaying, in the user interface, a data visualization according to the data fields in the tuples.

2. The method of claim 1 , further comprising:

in accordance with receiving the user selection of the one or more data fields and the user placement of the one or more data fields into the shelf region:

generating a visual specification that specifies the data source and a plurality of visual variables, wherein each of the visual variables is associated with either a respective data field of the data source or a respective filter.

3. The method of claim 1 , wherein generating, for each measure, the respective aggregated measure subquery comprises:

computing a measure sub-tree of the tree of logical tables, wherein the measure sub-tree is a minimum sub-tree required to supply the data fields for the respective measure;

computing a dimension-filter sub-tree of the tree of logical tables, wherein the dimension-filter sub-tree is a minimum sub-tree required to supply all physical inputs for the dimensions;

compiling the measure sub-tree to obtain a measure join tree and compiling the dimension-filter sub-tree to obtain a dimension-filter join tree; and

obtaining the respective aggregated measure subquery based on the measure join tree and the dimension-filter join tree.

4. The method of claim 3 , wherein compiling the measure sub-tree comprises inner joining logical tables in the measure sub-tree to obtain the measure join tree.

5. The method of claim 3 , wherein computing the dimension-filter sub-tree comprises inner joining logical tables in the dimension-filter sub-tree that are shared with the measure sub-tree, and left-joining logical tables in the dimension-filter sub-tree that are not shared with the measure sub-tree, to obtain the dimension-filter join tree.

6. The method of claim 3 , further comprising:

after obtaining the measure join tree and the dimension-filter join tree:

layering calculations and filters over the measure join tree and the dimension-filter join tree to obtain an updated measure sub-tree and an updated dimension-filter sub-tree, respectively; and

de-duplicating the updated dimension-filter sub-tree by applying a group-by operation that uses the dimensions and linking fields that include (i) keys from relationships between the logical tables and (ii) data fields of calculations shared with the measure sub-tree, to obtain a de-duplicated dimension-filter sub-tree.

7. The method of claim 6 , wherein obtaining the respective aggregated measure subquery based on the measure join tree and the dimension-filter join tree includes:

combining the de-duplicated dimension-filter sub-tree with the updated measure sub-tree.

8. The method of claim 7 , wherein combining the de-duplicated dimension-filter sub-tree with the updated measure sub-tree comprises:

determining if the de-duplicated dimension-filter sub-tree contains a filter;

in accordance with a determination that the de-duplicated dimension-filter sub-tree contains a filter, inner-joining the updated measure sub-tree with the de-duplicated dimension-filter sub-tree; and

in accordance with a determination that the de-duplicated dimension-filter sub-tree does not contain a filter, left outer-joining the updated measure sub-tree with the de-duplicated dimension-filter sub-tree.

9. The method of claim 7 , further comprising:

in accordance with a determination that the keys indicate a many-to-one relationship between a first logical table and a second logical table of the tree of logical tables:

including the first logical table and the second logical table in the measure sub-tree, thereby avoiding the group-by in a de-duplication operation for the first logical table and the second logical table.

10. The method of claim 7 , further comprising:

in accordance with a determination that the dimension-filter sub-tree joins against the measure sub-tree exclusively along many-to-one and one-to-one links, replacing tables shared by the measure sub-tree and the dimension-filter sub-tree with the de-duplicated dimension-filter sub-tree.

11. The method of claim 1 , wherein generating the dimension subquery comprises inner-joining a first one or more logical tables in the tree of logical tables, wherein each logical table of the first one or more logical tables supplies the data fields for a dimension.

12. The method of claim 1 , wherein forming the final query comprises:

joining the dimensions subquery and the aggregated measure subqueries on the dimensions using outer joins; and

applying a COALESCE to each outer join.

13. The method of claim 1 , wherein forming the final query comprises, in accordance with a determination that the data visualization has no dimensions, performing a full outer join between the aggregated measure subqueries.

14. The method of claim 1 , wherein the respective one or more logical fields include a first logical field that corresponds to a calculation that spans one or more logical tables.

15. A computer system for generating data visualizations, comprising:

one or more processors; and

memory, wherein the memory stores one or more programs configured for execution by the one or more processors, and the one or more programs include instructions for:

receiving user selection of one or more data fields from a data source and user placement of the one or more data fields into a shelf region of a user interface, the data source including a plurality of data fields and each of the data fields is either a dimension or a measure;

in accordance with receiving the user selection and the user placement:

obtaining a data model encoding the data source as a tree of logical tables, each logical table including a respective one or more logical fields, each logical field corresponding to a measure data field or a dimension data field of the data source, wherein each edge of the tree connects two logical tables that are related;

generating a dimension subquery based on logical tables that supply the data fields for the dimensions;

generating, for each measure, based on the logical tables that supply the data fields for the respective measure, a respective aggregated measure subquery grouped by the dimensions;

forming a final query by joining, using the dimensions, the dimension subquery to each of the aggregated measure subqueries;

executing the final query against the data source to retrieve tuples that comprise distinct ordered combinations of data values for the data fields; and

generating and displaying, in the user interface, a data visualization according to the data fields in the tuples.

16. The computer system of claim 15 , wherein the instructions for generating, for each measure, the respective aggregated measure subquery include instructions for:

computing a measure sub-tree of the tree of logical tables, wherein the measure sub-tree is a minimum sub-tree required to supply the data fields for the respective measure;

computing a dimension-filter sub-tree of the tree of logical tables, wherein the dimension-filter sub-tree is a minimum sub-tree required to supply all physical inputs for the dimensions;

compiling the measure sub-tree to obtain a measure join tree and compiling the dimension-filter sub-tree to obtain a dimension-filter join tree; and

obtaining the respective aggregated measure subquery based on the measure join tree and the dimension-filter join tree.

17. The computer system of claim 16 , wherein the instructions for compiling the measure sub-tree include instructions for inner joining logical tables in the measure sub-tree to obtain the measure join tree.

18. The computer system of claim 16 , wherein the instructions for computing the dimension-filter sub-tree include instructions for inner joining logical tables in the dimension-filter sub-tree that are shared with the measure sub-tree, and left-joining logical tables in the dimension-filter sub-tree that are not shared with the measure sub-tree, to obtain the dimension-filter join tree.

19. The computer system of claim 16 , the one or more programs further include instructions for:

after obtaining the measure join tree and the dimension-filter join tree:

layering calculations and filters over the measure join tree and the dimension-filter join tree to obtain an updated measure sub-tree and an updated dimension-filter sub-tree, respectively; and

de-duplicating the updated dimension-filter sub-tree by applying a group-by operation that uses the dimensions and linking fields that include (i) keys from relationships between the logical tables and (ii) data fields of calculations shared with the measure sub-tree, to obtain a de-duplicated dimension-filter sub-tree.

20. A non-transitory computer readable storage medium storing one or more programs configured for execution by a computer system having a display, one or more processors, and memory, the one or more programs comprising instructions for:

receiving user selection of one or more data fields from a data source and user placement of the one or more data fields into a shelf region of a user interface, the data source including a plurality of data fields and each of the data fields is either a dimension or a measure;

in accordance with receiving the user selection and the user placement:

obtaining a data model encoding the data source as a tree of logical tables, each logical table including a respective one or more logical fields, each logical field corresponding to a measure data field or a dimension data field of the data source, wherein each edge of the tree connects two logical tables that are related;

generating a dimension subquery based on logical tables that supply the data fields for the dimensions;

generating, for each measure, based on the logical tables that supply the data fields for the respective measure, a respective aggregated measure subquery grouped by the dimensions;

forming a final query by joining, using the dimensions, the dimension subquery to each of the aggregated measure subqueries;

executing the final query against the data source to retrieve tuples that comprise distinct ordered combinations of data values for the data fields; and

generating and displaying, in the user interface, a data visualization according to the data fields in the tuples.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2025
From: EUBANK, CHRISTIAN GABRIEL; TALBOT, JUSTIN
To: TABLEAU SOFTWARE, INC.
Reel/Frame 072027/0437 →
CHANGE OF NAME Recorded Aug 14, 2025
From: TABLEAU SOFTWARE, INC.
To: TABLEAU SOFTWARE, LLC
Reel/Frame 072442/0963 →
Continuity (4)
Continuation 16570969 · Sep 13, 2019
Continuation In Part 16236611 · Dec 30, 2018
Provisional Application 62748968 · Oct 22, 2018
Related Publication 20240265025A1 · Aug 8, 2024
References Cited (120)
US 5511186A · Carhart et al. · 1996 [cited by applicant]
US 5917492A · Bereiter et al. · 1999 [cited by applicant]
US 6189004B1 · Rassen et al. · 2001 [cited by applicant]
US 6199063B1 · Colby et al. · 2001 [cited by applicant]
US 6212524B1 · Weissman et al. · 2001 [cited by applicant]
US 6385604B1 · Bakalash et al. · 2002 [cited by applicant]
US 6492989B1 · Wilkinson · 2002 [cited by applicant]
US 6532471B1 · Ku et al. · 2003 [cited by applicant]
US 6807539B2 · Miller et al. · 2004 [cited by applicant]
US 7023453B2 · Wilkinson · 2006 [cited by applicant]
US 7039650B2 · Adams et al. · 2006 [cited by applicant]
US 7176924B2 · Wilkinson · 2007 [cited by applicant]
US 7290007B2 · Farber et al. · 2007 [cited by applicant]
US 7302447B2 · Dettinger et al. · 2007 [cited by applicant]
US 7337163B1 · Srinivasan et al. · 2008 [cited by applicant]
US 7426520B2 · Gorelik et al. · 2008 [cited by applicant]
US 7800613B2 · Hanrahan et al. · 2010 [cited by applicant]
US 7941521B1 · Petrov et al. · 2011 [cited by applicant]
US 8082243B2 · Gorelik et al. · 2011 [cited by applicant]
US 8442999B2 · Gorelik et al. · 2013 [cited by applicant]
US 8874613B2 · Gorelik et al. · 2014 [cited by applicant]
US 9165029B2 · Bhoovaraghavan et al. · 2015 [cited by applicant]
US 9336253B2 · Gorelik et al. · 2016 [cited by applicant]
US 9563674B2 · Hou et al. · 2017 [cited by applicant]
US 9613086B1 · Sherman · 2017 [cited by examiner]
US 9710527B1 · Sherman · 2017 [cited by applicant]
US 9779150B1 · Sherman et al. · 2017 [cited by applicant]
US 20010054034A1 · Arning et al. · 2001 [cited by applicant]
US 20020055939A1 · Nardone et al. · 2002 [cited by applicant]
US 20030004959A1 · Kotsis et al. · 2003 [cited by applicant]
US 20030023608A1 · Egilsson et al. · 2003 [cited by applicant]
US 20040103088A1 · Cragun et al. · 2004 [cited by applicant]
US 20040122844A1 · Malloy et al. · 2004 [cited by applicant]
US 20040139061A1 · Colosi et al. · 2004 [cited by applicant]
US 20040243593A1 · Stolte et al. · 2004 [cited by applicant]
US 20050038767A1 · Verschell et al. · 2005 [cited by applicant]
US 20050060300A1 · Stolte et al. · 2005 [cited by applicant]
US 20050182703A1 · D'hers et al. · 2005 [cited by applicant]
US 20060010143A1 · Netz et al. · 2006 [cited by applicant]
US 20060167924A1 · Bradlee et al. · 2006 [cited by applicant]
US 20060173813A1 · Zorola · 2006 [cited by applicant]
US 20060206512A1 · Hanrahan et al. · 2006 [cited by applicant]
US 20060294081A1 · Dettinger et al. · 2006 [cited by applicant]
US 20060294129A1 · Stanfill et al. · 2006 [cited by applicant]
US 20070006139A1 · Rubin · 2007 [cited by applicant]
US 20070156734A1 · Dipper et al. · 2007 [cited by applicant]
US 20080016026A1 · Farber et al. · 2008 [cited by applicant]
US 20080027957A1 · Bruckner et al. · 2008 [cited by applicant]
US 20090006370A1 · Li et al. · 2009 [cited by applicant]
US 20090319548A1 · Brown et al. · 2009 [cited by applicant]
US 20100005054A1 · Smith et al. · 2010 [cited by applicant]
US 20100005114A1 · Dipper · 2010 [cited by examiner]
US 20100077340A1 · French et al. · 2010 [cited by applicant]
US 20110131250A1 · Stolte et al. · 2011 [cited by applicant]
US 20120116850A1 · Abe et al. · 2012 [cited by applicant]
US 20120117453A1 · Mackinlay et al. · 2012 [cited by applicant]
US 20120284670A1 · Kashik et al. · 2012 [cited by applicant]
US 20130080584A1 · Benson · 2013 [cited by applicant]
US 20130159307A1 · Wolge et al. · 2013 [cited by applicant]
US 20130166498A1 · Aski et al. · 2013 [cited by applicant]
US 20130191418A1 · Martin, Jr. et al. · 2013 [cited by applicant]
US 20140181151A1 · Mazoue · 2014 [cited by applicant]
US 20140189553A1 · Bleizeffer et al. · 2014 [cited by applicant]
US 20150039912A1 · Payton et al. · 2015 [cited by applicant]
US 20150261728A1 · Davis · 2015 [cited by applicant]
US 20150278371A1 · Anand et al. · 2015 [cited by applicant]
US 20160092530A1 · Jakubiak et al. · 2016 [cited by applicant]
US 20160092601A1 · Lamas et al. · 2016 [cited by applicant]
US 20170132277A1 · Hsiao · 2017 [cited by examiner]
US 20170357693A1 · Kumar · 2017 [cited by examiner]
US 20180024981A1 · Xia et al. · 2018 [cited by applicant]
US 20180129513A1 · Gloystein et al. · 2018 [cited by applicant]
US 20180336223A1 · Kapoor et al. · 2018 [cited by applicant]
US 20190065565A1 · Stolte et al. · 2019 [cited by applicant]
US 20190108272A1 · Talbot et al. · 2019 [cited by applicant]
US 20200073876A1 · Lopez et al. · 2020 [cited by applicant]
US 20200125559A1 · Talbot et al. · 2020 [cited by applicant]
US 20200233905A1 · Williams et al. · 2020 [cited by applicant]
Borden, Preinterview First Office Action, U.S. Appl. No. 16/905,819, Oct. 28, 2021, 4 pgs. [cited by applicant]
Borden, Notice of Allowance, U.S. Appl. No. 16/905,819, Nov. 24, 2021, 19 pgs. [cited by applicant]
Eubank, Office Action, U.S. Appl. No. 16/579,762, Feb. 19, 2021, 9 pgs. [cited by applicant]
Eubank, Notice of Allowance, U.S. Appl. No. 16/579,762, Aug. 18, 2021, 15 pgs. [cited by applicant]
Eubank, Office Action, U.S. Appl. No. 16/570,969, Jun. 15, 2021, 12 pgs. [cited by applicant]
Eubank, Final Office Action, U.S. Appl. No. 16/570,969, Dec. 1, 2021, 12 pgs. [cited by applicant]
Eubank, Notice of Allowance, U.S. Appl. No. 16/570,969, Dec. 18, 2023, 7 pgs. [cited by applicant]
Ganapavurapu, “Designing and Implementing a Data Warehouse Using Dimensional Modling,” Thesis Dec. 7, 2014, XP055513055, retrieved from Internet: UEL:https://digitalepository.unm.edu/cgi/viewcontent.cgi?article= 1091&co… [cited by applicant]
Gyldenege, Preinterview First Office Action, U.S. Appl. No. 16/221,413, Jun. 11, 2020, 4 pgs. [cited by applicant]
Gyldenege, First Action Interview Office Action, U.S. Appl. No. 16/221,413, Jul. 27, 2020,4 pgs. [cited by applicant]
Mansmann, “Extending the OLAP Technology to Handle Non-Conventional and Complex Data,” Sep. 29, 2008, XP055513939, retrieve from URL/https://kops.uni-konstanz.de/hadle/123456789/5891, 1 pg. [cited by applicant]
Milligan et al., (Tableau 10 Complete Reference, Copyright © 2018 Packt Publishing Ltd., ISBN 978-1-78995-708-2, Electronic edition excerpts retrieved on [Sep. 23, 2020] from [https://learning.orelly.com/], 144 pages (Y… [cited by applicant]
“Mondrian 3.0.4 Technical Guide,” 2009 (Year: 2009). [cited by applicant]
Morton, Office Action, U.S. Appl. No. 14/054,803, Sep. 11, 2015, 22 pgs. [cited by applicant]
Morton, Final Office Action, U.S. Appl. No. 14/054,803,May 11, 2016, 22 pgs. [cited by applicant]
Morton, Notice of Allowance, U.S. Appl. No. 14/054,803, Mar. 1, 2017, 23 pgs. [cited by applicant]
Morton, Preinterview 1st Office Action, U.S. Appl. No. 15/497,130, Sep. 18, 2019, 6 pgs. [cited by applicant]
Morton, First Action Interview Office Action, U.S. Appl. No. 15/497,130, Feb. 19, 2020, 26 pgs. [cited by applicant]
Morton, Final Office Action, U.S. Appl. No. 15/497,130, Aug. 12, 2020, 19 pgs. [cited by applicant]
Sleeper, Ryan (Practical Tableau, Copyright © 2018 Evolytics and Ryan Sleeper, Published by OP'Reilly Media, Inc., ISBN 978-1-491-97731-6, Electronic editionexcerpts retrieved on [Sep. 23, 2020] from [https://learning.o… [cited by applicant]
Morton, Office Action, U.S. Appl. No. 15/497,130, Jan. 8, 2021, 20 pgs. [cited by applicant]
Song et al., “SAMSTAR,” Data Warehousing and OLAP, ACM, 2 Penn Plaza, Suite 701, New York, NY, Nov. 9, 2007, XP058133701, pp. 9 to 16, 8 pgs. [cited by applicant]
Tableau Software, Inc., International Search Report and Written Opinion, PCTUS2019056491, Jan. 2, 2020, 11 pgs. [cited by applicant]
Tableau Software, Inc., International Search Report and Written Opinion, PCTUS2018/044878, Oct. 22, 2018, 15 pgs. [cited by applicant]
Tableau Software, Inc., International Preliminary Report on Patentability, PCTUS2018/044878, Apr. 14, 2020, 12 pgs. [cited by applicant]
Tableau Software, Inc., International Search Report and Written Opinion, PCT/US2020/045461, Oct. 28, 2020. [cited by applicant]
Tableau All Releases, retrieved on [Oct. 2, 2020] from [https://www.tableau.com/products/all-features], (Year: 2020], 49 pgs. [cited by applicant]
Talbot, Office Action, U.S. Appl. No. 14/801,750, May 7, 2018, 60 pgs. [cited by applicant]
Talbot, Final Office Action, U.S. Appl. No. 14/801,750, Nov. 28, 2018, 63 pgs. [cited by applicant]
Talbot, Office Action, U.S. Appl. No. 14/801,750. Jun. 24, 2019, 55 pgs. [cited by applicant]
Talbot, Final Office Action, U.S. Appl. No. 15/911,026, Dec. 16, 2020, 28 pgs. [cited by applicant]
Talbot, Preinterview First Office Action, U.S. Appl. No. 16/236,611, Oct. 28, 2020, 6 pgs. [cited by applicant]
Talbot, First Action Interview Office Action, U.S. Appl. No. 16/236,611, Dec. 22, 2020, 5 pgs. [cited by applicant]
Talbot, Final Office Action, U.S. Appl. No. 16/236,611, Apr. 27, 2021, 21 pgs. [cited by applicant]
Talbot, Preinterview First Office Action, U.S. Appl. No. 16/236,612, Oct. 29, 2020, 6 pgs. [cited by applicant]
Talbot, First Action Interview Office Action, U.S. Appl. No. 16/236,612, Dec. 22, 2020, 5 pgs. [cited by applicant]
Talbot, Final Office Action, U.S. Appl. No. 16/236,612, Apr. 28, 2021, 20 pgs. [cited by applicant]
Talbot, Office Action, U.S. Appl. No. 16/236,611, Oct. 4, 2021, 18 pgs. [cited by applicant]
Talbot, Office Action, U.S. Appl. No. 16/236,612, Oct. 5, 2021, 22 pgs. [cited by applicant]
Talbot, Notice of Allowance, U.S. Appl. No. 16/236,612, Aug. 3, 2022, 15 pgs. [cited by applicant]
Talbot, Notice of Allowance, U.S. Appl. No. 16/236,611, Dec. 13, 2023, 8 pgs. [cited by applicant]
Trishla Maru, “Running Analytics on SAP HANA and BW with MicroStrategy,” Dec. 25, 2016, XP055738162, from https://silo.tips/download/running-analytics-on-sap-hana-and-bw-with-microstrategy, 37 pgs. [cited by applicant]