0
我是django和SQL查询的新手。我正在尝试在django中使用不同的注释。但无法获得结果。我的表看起来像在django中聚合或注释condtion
+-----------------------+-----------+---------------------+
| email | event | event_date |
|-----------------------+-----------+---------------------|
| [email protected] | open | 2017-01-03 13:26:13 |
| [email protected] | delivered | 2017-01-03 13:26:28 |
| [email protected] | open | 2017-01-03 13:26:33 |
| [email protected] | open | 2017-01-03 13:26:33 |
| [email protected] | open | 2017-01-03 13:34:53 |
| [email protected] | click | 2017-01-03 13:35:22 |
| [email protected] | open | 2016-09-05 00:00:00 |
| [email protected] | open | 2016-09-17 00:00:00 |
| [email protected] | open | 2017-01-03 16:05:36 |
| [email protected] | open | 2017-01-03 20:12:15 |
| [email protected] | open | 2017-01-03 22:06:47 |
| [email protected] | click | 2017-01-09 19:46:26 |
| [email protected] | open | 2017-01-09 19:47:59 |
| [email protected] | open | 2017-01-09 19:48:28 |
| [email protected] | delivered | 2017-01-09 19:52:24 |
+-----------------------+-----------+---------------------+
模式是这样的:
class EmailEvent(models.Model):
event = models.TextField(blank=True, null=True)
email = models.TextField(blank=True, null=True)
event_date = models.DateTimeField(blank=True, null=True)
我要为不同的事件列中的值重复计数。例如 EmailEvent.objects.filter(event='open').distinct('email').count()
结果3个 EmailEvent.objects.filter(event='click').distinct('email').count()
结果2个 EmailEvent.objects.filter(event='delivered').distinct('email').count()
结果2
如何获得与集合结果或在一个查询注释?我想要的结果像
{
'open': 3,
'click': 2,
'delivered': 2,
}
谢谢!
谢谢老兄!它的作用就像魅力。但我无法理解代码。你能解释一下吗? –