仅当存在 3 个或更多重复项时才拉取所有记录

Pull all records only if 3 dups or more exist

如果其中两个字段(类别和度量)创建了 3 个或更多重复项,我将尝试提取所有字段和记录。

SELECT category
      ,measure 
      ,date
FROM my_table

例如:

category measure date
EVENTS   COL     04/15/2014
EVENTS   COL     05/21/2014
EVENTS   COL     07/16/2014

所以以上符合 3 个或更多的标准,所以我们将全部拉出三个。

category measure rec_count
EVENTS   COL     3

听起来你在找 GROUP BY:

SELECT category
  ,measure 
  ,count(*) as rec_count
FROM my_table
GROUP BY category, measure
HAVING count(*) >= 3
SELECT
    category, measure, date, count(*) cnt
FROM my_table
GROUP BY category, measure
HAVING cnt >= 3
;

我想你想要类似的东西 - 为你提供包含 3 条或更多记录的所有行

SELECT 
  category,
  measure,
  date 
FROM 
  my_table t1 

  inner join (
    SELECT 
      category,
      measure
    FROM 
      my_table
    group by
      category,
      measure
    having
      count(*) >= 3
  ) t2 on
    t2.category = t1.category and
    t2.measure = t1.measure

如果只得到计数,您会 运行

    SELECT 
      category,
      measure
      count(*)
    FROM 
      my_table
    group by
      category,
      measure
    having
      count(*) >= 3

这不会对您的结果进行分组。

SELECT q.* FROM
    (SELECT
    category
    ,measure 
    ,date
    ,COUNT(*) OVER(PARTITION BY category,measure) [rec_count]
    FROM
    my_table) q
WHERE q.rec_count >= 3