【发布时间】:2018-12-18 00:36:21
【问题描述】:
我希望使用 Sqlite3 解决以下问题。我想汇总这些数据:
+--------+-------+----------+----------+--------+
| DRAWID | BETID | TICKETID | STATUS | AMOUNT |
+--------+-------+----------+----------+--------+
| 1 | 1 | 1 | OK | 3 |
| 1 | 2 | 1 | OK | 2 |
| 1 | 3 | 2 | CANCELED | 4 |
| 1 | 4 | 2 | CANCELED | 7 |
| 1 | 5 | 3 | OK | 5 |
| 1 | 6 | 3 | OK | 4 |
+--------+-------+----------+----------+--------+
到下面
+--------+-----------+-----------+--------------+----------+-------------+
| BetsOK | BetsNotOk | TicketsOk | TicketsNotOk | AmountOk | AmountNotOk |
+--------+-----------+-----------+--------------+----------+-------------+
| 4 | 2 | 2 | 1 | 14 | 11 |
+--------+-----------+-----------+--------------+----------+-------------+
为了让 TicketsOk 获得正确的分组,我似乎要执行两个子查询并且必须加入。 Ok 的一个子查询和 NotOk 的另一个子查询,像这样
(SELECT drawId, (DISTINCT ticketId) FROM Bets WHERE drawId = AND userId = AND Status IN ("OK")) TblTicketsOk ...
sqlite3 或一般 sql 中是否存在可能更简单的东西。有人可以帮助编写完整的 sql 语句来解决这个问题吗?
【问题讨论】:
-
所以您只是要求一种更有效的方式来编写您的脚本?
标签: sql sqlite aggregate-functions case-when