如何查找表中具有满足特定条件的列的最大条目数?

时间:2012-09-10 22:44:44

标签: mysql sql sqlite

我不完全确定如何简单地说出这个问题,所以我会提出重新命名问题的建议。我提前为这个问题看起来多么愚蠢而道歉,但我有一个脑筋屁的时刻,我无法绕过它。 我想到的表是由:

创建的
CREATE TABLE STRUCTURES (X INT(4),Z INT(4),TYPE CHAR(1),SEED_ID BIGINT);

问题是,如何找到TYPE ='V'和SEED_ID相同的最大条目数?我们将这个号码称为MAX_TYPE_V。

为了澄清,我正在使用查询:

SELECT SEED_ID 
FROM STRUCTURES 
WHERE TYPE='V' 
GROUP BY SEED_ID 
HAVING COUNT(SEED_ID)=MAX_TYPE_V;

但我不知道如何找到MAX_TYPE_V插入上述查询,所以我的解决方法是尝试从1到2 ^ 31-1的MAX_TYPE_V查询,直到查询失败一些数字i,这意味着我-1是我的最大值,但坦率地说,这非常耗时且非常愚蠢。 我正在使用SQLite3,所以任何答案都应该解决MySQL语法问题。

1 个答案:

答案 0 :(得分:1)

  SELECT SEED_ID,
         COUNT(*) AS cnt
    FROM STRUCTURES 
   WHERE TYPE='V' 
GROUP BY SEED_ID 
ORDER BY COUNT(*) DESC
   LIMIT 1