A)假设一张表。我想对它执行删除功能。这是在ms access 2003 sql查询中完成的。注意:有很多条目。几十万..。如果有一段代码能够很好地处理一个大型的数据集,那么希望有百万ranges.so。只有三种类型的情绪。
DayNumber Mood
1 Mad
2 Sad
2 Happy
2 Sad
3 Sad
3 Happy当一天中有几种情绪时,我们只想保持最重要的情绪。因此,让我们有一个删除函数删除重复的天数。首先,删除不太重要的情绪。情绪的重要性是Happy>Mad>Sad。所以我想:
DayNumber Mood
1 Mad
2 Happy
3 Happy B) I最初是在没有三种情绪选择的情况下开始的。其中Happy>Sad
DayNumber Mood
1 Sad
2 Sad
2 Happy
3 Sad
3 Happy我最理想的目标是
DayNumber Mood
1 Sad
2 Happy
3 Happy不管你是做第一个例子,还是对我来说,我都被困住了!
这就是我到目前为止对第二个问题的看法。它不工作,因为我在where子句中有一个聚合函数。
DELETE FROM Table
WHERE (Mood='Sad') and (COUNT(DayNumber)=2);发布于 2011-07-22 18:55:14
如果你有少量固定数量的情绪,你可以像这样硬连接层次结构:
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')))发布于 2011-07-22 18:55:25
DELETE FROM Table where Mood='Sad' AND DayNumber IN (SELECT DayNumber FROM Table WHERE Mood = 'Happy')https://stackoverflow.com/questions/6794654
复制相似问题