首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除SQL查询ms access中的重复项

删除SQL查询ms access中的重复项
EN

Stack Overflow用户
提问于 2011-07-22 18:46:37
回答 2查看 2.2K关注 0票数 0

A)假设一张表。我想对它执行删除功能。这是在ms access 2003 sql查询中完成的。注意:有很多条目。几十万..。如果有一段代码能够很好地处理一个大型的数据集,那么希望有百万ranges.so。只有三种类型的情绪。

代码语言:javascript
复制
 DayNumber   Mood
     1       Mad
     2       Sad
     2       Happy 
     2       Sad
     3       Sad 
     3       Happy

当一天中有几种情绪时,我们只想保持最重要的情绪。因此,让我们有一个删除函数删除重复的天数。首先,删除不太重要的情绪。情绪的重要性是Happy>Mad>Sad。所以我想:

代码语言:javascript
复制
 DayNumber   Mood
     1       Mad
     2       Happy
     3       Happy 

B) I最初是在没有三种情绪选择的情况下开始的。其中Happy>Sad

代码语言:javascript
复制
 DayNumber   Mood
     1       Sad
     2       Sad
     2       Happy 
     3       Sad 
     3       Happy

我最理想的目标是

代码语言:javascript
复制
 DayNumber   Mood
     1       Sad
     2       Happy 
     3       Happy

不管你是做第一个例子,还是对我来说,我都被困住了!

这就是我到目前为止对第二个问题的看法。它不工作,因为我在where子句中有一个聚合函数。

代码语言:javascript
复制
DELETE FROM Table
WHERE (Mood='Sad') and (COUNT(DayNumber)=2);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-22 18:55:14

如果你有少量固定数量的情绪,你可以像这样硬连接层次结构:

代码语言:javascript
复制
DELETE FROM Table a
WHERE
(a.Mood='Sad' 
AND EXISTS
  (SELECT 1
   FROM Table b
   WHERE b.DayNumber = a.DayNumber
   AND b.Mood in ('Happy','Mad')))
OR
(a.Mood = 'Mad'
AND EXISTS
  (SELECT 1
   FROM Table c
   WHERE c.DayNumber = a.DayNumber
   AND c.Mood = 'Happy')))
票数 1
EN

Stack Overflow用户

发布于 2011-07-22 18:55:25

代码语言:javascript
复制
DELETE FROM Table where Mood='Sad' AND DayNumber IN (SELECT DayNumber FROM Table WHERE Mood = 'Happy')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6794654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档