【发布时间】:2020-12-12 07:53:46
【问题描述】:
我有一个客户会议列表,这些会议由 Python3.8 从所有已安排会议的 csv 文件中添加到 SQLite3 数据库中(每次安排新会议时都会手动下载该文件)。有时会重新安排会议,这会导致同一个人在该季度安排多次会议,即使每个客户每个季度只有一次“季度”会议,而且季度不是基于日历年而是因客户而异。有时除了定期的季度会议外,还会举行“特别”会议。日历将包含 Q1 到 Q4,但它可能从 Q2 开始并在 Q1 结束,具体取决于客户年份与日历年的下降情况。
所以我想做的是返回每个季度所有重复的客户会议,以便我可以手动删除/检查它们并标记为“特殊”或“其他”。 QTR 值由 Python 在添加记录时根据日期和客户个别年份的开始计算得出。
如果有其他方法可以做到这一点,我很乐意听到。
架构 (SQLite v3.30)
CREATE TABLE "Meetings" (
"id_pk" INTEGER NOT NULL,
"Hipaa" TEXT NOT NULL,
"Meeting_Date" TEXT NOT NULL,
"CN_Date" TEXT,
"QTR" TEXT,
"Date_Added" TEXT,
"Annual" TEXT,
"FLAG" TEXT,
UNIQUE("Hipaa","Meeting_Date"),
PRIMARY KEY("id_pk")
)
查询 #1
insert into Meetings ("Hipaa", "Meeting_Date", "QTR", "FLAG")
values
( "JonesTom" , "2020-01-03" , "Q1" , "Regular" ),
( "JonesTom" , "2020-04-06" , "Q2" , "Regular" ),
( "JonesTom" , "2020-07-10" , "Q3" , "Regular" ),
( "JonesTom" , "2020-10-15" , "Q4" , "Regular" ),
( "JonesTom" , "2021-01-10" , "Q1" , "Regular" ),
( "ConnSar" , "2020-02-04" , "Q1" , "Regular" ),
( "ConnSar" , "2020-05-07" , "Q2" , "Regular" ),
( "ConnSar" , "2020-08-11" , "Q3" , "Regular" ),
( "ConnSar" , "2020-11-02" , "Q4" , "Regular" ),
( "ConnSar" , "2020-11-16" , "Q4" , "Regular" ),
( "ConnSar" , "2021-02-12" , "Q1" , "Regular" ),
( "ZuckMark" , "2019-01-14" , "Q3" , "Regular" ),
( "ZuckMark" , "2019-01-17" , "Q3" , "Regular" ),
( "ZuckMark" , "2020-05-20" , "Q4" , "Regular" ),
( "ZuckMark" , "2020-07-05" , "Q1" , "Regular" ),
( "ZuckMark" , "2020-07-21" , "Q1" , "Regular" ),
( "ZuckMark" , "2020-10-20" , "Q2" , "Regular" ),
( "ZuckMark" , "2020-11-06" , "Q2" , "Regular" ),
( "ZuckMark" , "2020-01-02" , "Q3" , "Regular" )
;
查询 #2
select * from Meetings;
| id_pk | Hipaa | Meeting_Date | CN_Date | QTR | Date_Added | Annual | FLAG |
| ----- | -------- | ------------ | ------- | --- | ---------- | ------ | ------- |
| 1 | JonesTom | 2020-01-03 | | Q1 | | | Regular |
| 2 | JonesTom | 2020-04-06 | | Q2 | | | Regular |
| 3 | JonesTom | 2020-07-10 | | Q3 | | | Regular |
| 4 | JonesTom | 2020-10-15 | | Q4 | | | Regular |
| 5 | JonesTom | 2021-01-10 | | Q1 | | | Regular |
| 6 | ConnSar | 2020-02-04 | | Q1 | | | Regular |
| 7 | ConnSar | 2020-05-07 | | Q2 | | | Regular |
| 8 | ConnSar | 2020-08-11 | | Q3 | | | Regular |
| 9 | ConnSar | 2020-11-02 | | Q4 | | | Regular |
| 10 | ConnSar | 2020-11-16 | | Q4 | | | Regular |
| 11 | ConnSar | 2021-02-12 | | Q1 | | | Regular |
| 12 | ZuckMark | 2019-01-14 | | Q3 | | | Regular |
| 13 | ZuckMark | 2019-01-17 | | Q3 | | | Regular |
| 14 | ZuckMark | 2020-05-20 | | Q4 | | | Regular |
| 15 | ZuckMark | 2020-07-05 | | Q1 | | | Regular |
| 16 | ZuckMark | 2020-07-21 | | Q1 | | | Regular |
| 17 | ZuckMark | 2020-10-20 | | Q2 | | | Regular |
| 18 | ZuckMark | 2020-11-06 | | Q2 | | | Regular |
| 19 | ZuckMark | 2020-01-02 | | Q3 | | | Regular |
期望的结果
| id_pk | Hipaa | Meeting_Date | CN_Date | QTR | Date_Added | Annual | FLAG |
| ----- | -------- | ------------ | ------- | --- | ---------- | ------ | ------- |
| 9 | ConnSar | 2020-11-02 | | Q4 | | | Regular |
| 10 | ConnSar | 2020-11-16 | | Q4 | | | Regular |
| 12 | ZuckMark | 2019-01-14 | | Q3 | | | Regular |
| 13 | ZuckMark | 2019-01-17 | | Q3 | | | Regular |
| 15 | ZuckMark | 2020-07-05 | | Q1 | | | Regular |
| 16 | ZuckMark | 2020-07-21 | | Q1 | | | Regular |
| 17 | ZuckMark | 2020-10-20 | | Q2 | | | Regular |
| 18 | ZuckMark | 2020-11-06 | | Q2 | | | Regular |
【问题讨论】:
标签: sql sqlite duplicates subquery python-3.8