count only records from left table ROLLUP or CUBE

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • c.le_roq@caramail.com

    count only records from left table ROLLUP or CUBE

    Hello,

    Using rollup I want to count the number of rows of a table
    called Table1 which is LEFT JOINED with a table called Table2.

    The problem is that we can have more than 1 rows in Table2 that
    matched 1 row in Table1. As a consequence the count of rows in table1
    is bigger than the real number of rows contained in table1.

    For example:

    Select COUNT(Table1.em ployeeID), Table1.country
    FROM Table1
    LEFT OUTER JOIN Table2 ON Table1.phone_nu mber = Table2.phone_nu mber
    GROUP BY Table1.country WITH ROLLUP

    that works but give me a COUNT higher than the truth because I can have
    several times the same phone number in Table2!

    COUNT(DISTINCT. ..) would work if WITH ROLLUP not used BUT I want
    absolutely to use ROLLUP.
    Does someone know a workaround?

    Help much appreciated.

  • Razvan Socol

    #2
    Re: count only records from left table ROLLUP or CUBE

    In your example, the workaround is very easy: remove the join with
    Table2, because Table2 is not used at all in the query (there are no
    conditions on this table, no columns selected from it; the only effect
    of joining this table is the higher count, that you do not want).

    Please post a query that is closer to your requirements, along with
    DDL, sample data and expected results, as documented in:


    Razvan

    Comment

    Working...