![](/img/trans.png)
[英]How can I summarize a set of records into one line where only one record in a column has text and all others are null?
[英]How can I pull back only records where column has matching data?
我需要從具有匹配項的表中提取數據。 到目前為止,這是我所擁有的,而且似乎沒有用。
SELECT
@@SERVERNAME AS Instance,
DB_NAME() AS [DataBase],
co, id,
changedBy,
oldValue, newValue
FROM
Table1 T1
WHERE
CONVERT(DATE, changeDate) = CONVERT(DATE, GETDATE())
AND column1 = 'name1'
AND column2 IN ('name2','name3')
AND (SELECT COUNT(*) FROM Table1 T2 WHERE T1.newValue = T2.newValue )>3
該表由觸發器發生的更改組成。 我需要能夠查詢該表並拉回條件中匹配的所有項目。
這將是表格的示例
instance | database | co | id | changedby | oldvalue | newvalue
----------------------------------------------------------------
sql01 | 123 | abc | 01 | user1 | 1234 | 5678
每天可能有數百萬種此類記錄。 我只需要回退的地方是4或更多行上newvalue相同的行。 由於此數據庫中充滿了個人信息(我在一家與銀行業務有關的公司工作),我正在尋找可能會欺詐性地更改了銀行路由和會計的行。
您可以使用匯總窗口功能執行此操作:
;with cte as(select *, count() over(partition by newvalue) as rn
from table1
where ...)
select *
from cte
where rn > 3
注意:您應該從where
子句中刪除它:
AND (SELECT COUNT(*) FROM Table1 T2 WHERE T1.newValue = T2.newValue )>3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.