【发布时间】:2019-03-22 16:10:10
【问题描述】:
这是我当前的查询。
SELECT *
FROM covered_panel_table
WHERE panel_id = "2" AND
date_added <= "2019-03-22"
ORDER BY gene ASC, genes_covered_by_panel_id ASC
如果有多个带有样本 panel_id、基因和外显子的条目,我想添加到查询中,选择小于或等于报告日期的那个,或者如果两者都更大,则选择最新的条目。
描述covered_panel_table;
+---------------------------+-------------+------+-----+
| Field | Type | Null | Key |
+---------------------------+-------------+------+-----+
| covered_panel_id | int(11) | NO | PRI |
| panel_id | int(11) | YES | |
| gene | varchar(7) | YES | |
| exon | varchar(17) | YES | |
| accession_num | varchar(16) | YES | |
| date_added | date | YES | |
+---------------------------+-------------+------+-----+
更新:
示例数据:
+------------------+----------+--------+-----------------+----------------+------------+
| covered_panel_id | panel_id | gene | exon | accession_num | date_added |
+------------------+----------+--------+-----------------+----------------+------------+
| 2 | 2 | ASXL1 | 12 | NM_015338.5 | 2017-09-22 |
| 245 | 2 | BCOR | all | NM_001123385.1 | 2019-03-22 |
| 3 | 2 | BCOR | all | NM_017745.5 | 2017-09-22 |
| 4 | 2 | BRAF | 15 | NM_004333.4 | 2017-09-22 |
| 7 | 2 | CBL | 8, 9 | NM_005188.3 | 2019-03-18 |
| 6 | 2 | DNMT3a | all | NM_022552.4 | 2019-03-25 |
+------------------+----------+--------+-----------------+----------------+------------+
预期结果
+------------------+----------+--------+-----------------+----------------+------------+
| covered_panel_id | panel_id | gene | exon | accession_num | date_added |
+------------------+----------+--------+-----------------+----------------+------------+
| 2 | 2 | ASXL1 | 12 | NM_015338.5 | 2017-09-22 |
| 245 | 2 | BCOR | all | NM_001123385.1 | 2019-03-22 |
| 4 | 2 | BRAF | 15 | NM_004333.4 | 2017-09-22 |
| 7 | 2 | CBL | 8, 9 | NM_005188.3 | 2019-03-18 |
+------------------+----------+--------+-----------------+----------------+------------+
【问题讨论】:
-
您的预期结果是什么?
-
Alex 我更新了这个问题。谢谢。
-
选择小于或等于报告日期的那个什么是报告日期?为什么行
6 | 2 | DNMT3a....未包含在您的预期结果中?为什么 id 行`245 | 2 | BCOR |全部| NM_001123385.1 | 2019-03-22 |` 包含在您的预期结果中吗? -
您使用的是哪个 MySQL 版本?从 MySQL 8 开始,排名很容易。
-
"选择小于或等于报告日期的"?
2 | BCOR | all“小于或等于报告日期”有 两 行(假设报告日期是今天,2019-03-22)。请制定一个精确的规则。
标签: mysql