简体   繁体   English

MySQL查询COUNT个不同的行

[英]MySQL query for COUNT Distinct rows

I have a mysql table with two columns 'test-id' and 'q-id'. 我有一个带有两列“ test-id”和“ q-id”的mysql表。 'test-id' range is from 1 to 160 and each value of those test-id has upto 100 'q-id'. “ test-id”的范围是1到160,这些test-id每个值最多可以包含100个“ q-id”。

ex: test-id   q-id
    1         126    #first row
    1         134    #second row
    ...
    1         66    #hundred row

SELECT COUNT(DISTINCT `q-id`)
             from `test`
             WHERE `test-id` = 1;  #answer is 100

I want to count which test-id has how many q-id. 我想算出哪个test-id有多少个q-id。 how to do it in a single query? 如何在一个查询中做到这一点?

要理解的关键语句是GROUP BY语句。

SELECT "test-id", COUNT(DISTINCT "q-id") as qid_count FROM "test" GROUP BY "test-id"
SELECT testid, COUNT(DISTINCT q-id) from test Group by testid

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM