Suppose I have a table and rows like (fwiw, Postgres):

CREATE TABLE small_table (
  key1  INTEGER NOT NULL,
  text1 VARCHAR(10),
  text2 VARCHAR(10),
  text3 VARCHAR(10),
  text4 VARCHAR(10)
);
ALTER TABLE small_table ADD CONSTRAINT small_table_pk PRIMARY KEY (key1);
INSERT INTO small_table VALUES (1, 'a', 'a', 'a', 'a');
INSERT INTO small_table VALUES (2, 'a', 'b', 'b', 'b');
INSERT INTO small_table VALUES (3, 'a', 'b', 'c', 'c');
INSERT INTO small_table VALUES (4, 'a', 'b', 'c', 'd');


Is there a way with the MM API to construct this query:

SELECT COUNT(DISTINCT text1) FROM small_table;

?

which returns (count) = (1) which is what i want. ‘text1’ has 1 distinct value 
(‘a’).


Using the API this way, it produces a different query than what I want:

Table table = connection.getTableByName("small_table");
Query q = new Query();
q.from(table).select("text1");
q.groupBy("text1");
q.selectDistinct().selectCount();

—>

SELECT DISTINCT “small_table”."text1", COUNT(*)
FROM ”small_table”
GROUP BY “small_table”."text1"

which returns: (text1,count) = (a, 4)  [ not what i want ]


Thanks,
Dana

Reply via email to