SQL - 仅选择具有多个条目的结果

标签 sql sql-server-2008

这看起来很简单,但我不知道如何做到这一点或正确的描述来正确地谷歌它:(

简单地说,有一个表:

PatientID | Date | Feature_of_Interest...

我想为多次就诊的患者绘制一些结果,当他们具有感兴趣的特征时。按感兴趣的功能进行过滤没有问题,但我只希望生成的查询包含具有多个条目的患者。

SELECT PatientID,Date,...
    FROM myTable
    WHERE Feature_Of_Interest is present
    AND (Filter out PatientID's that only appear once)

所以 - 只是不知道如何解决这个问题。我尝试这样做:

WITH X AS (Above SELECT, Count(*),...,Group by PatientID)

然后重新运行查询,但没有成功。如果需要的话,我可以将其全部发布出来,但我觉得我完全倒退了,所以现在会推迟。

使用 SQL Server 2008。

最佳答案

试试这个:

WITH qry AS
(
SELECT a.*,
COUNT(1) OVER(PARTITION BY PatientID) cnt
        FROM myTable  a
 WHERE Feature_Of_Interest = 'present '
)
SELECT *
  FROM qry
WHERE cnt >1

关于SQL - 仅选择具有多个条目的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700905/

相关文章:

mysql - 在 MySQL 中写入 IN 运算符时出错

mysql - mysql : Add if condition in where statement?

mysql - 如何从子查询中获取具体行来比较主查询中的值?

sql - 在 SQL 中创建特定汇总的查询

tsql - 如何获得有序 View ?

c# - 将 Visual Studio 2012 中的数据源从 SQLSRV 更改为 MySQL

t-sql - 返回自连接表上的父/子关系

sql-server - 通过SQL Reporting Services发送带有PDF的多个附件报告的电子邮件

sql - 在SSMS中创建架构

sql - 寻找共同的 friend sql