我目前正在开发一个将根据潜在客户数据生成报告的程序。我的问题是,我正在运行3个查询,我只想运行一个查询。例如,我想收集过去一天产生的线索的数据,我想知道有多少线索总数,以及那个时间段内有多少销售线索。 (售出= 1 /售出= 0)。问题出现在这个查询目前正在进行2个查询,其中一个销售= 1
,WHERE
销售= 0
销售WHERE
。这一切都很好,但是当我想要在过去一天,一周,一个月,一年以及所有时间生成这些数据时,我将不得不运行10个查询来获取这些数据。我觉得这是一个更有效的方式。我知道我可以为此创建一个mySQL函数,但我不明白这是如何解决这个问题的。 谢谢!是否有可能在mySQL中创建多层WHERE语句
回答
一种方法做的是利用聚合函数(通常SUM
和COUNT
帮助你在这种情况下最)随着MySQL的IF()
功能。
例如,可以使用的查询,例如:
SELECT
SUM(IF(sold = 1, sold, 0)) AS TotalSold,
SUM(IF(sold = 0, sold, 0)) AS TotalUnsold,
SUM(IF(submission_date > (NOW() - INTERVAL 1 WEEK)
AND sold = 1, sold, 0) AS TotalSoldThisWeek
FROM ...
WHERE ...
条件(例如sold = 1
)可以像要通过使用AND
和OR
一样复杂。
Disclamer:代码没有经过测试,这只是作为一个应该稍作修改的例子。
为什么不GROUP BY出售让您获得总计售出和未售出
真棒,这将解决售出vs未售出的问题。任何方式来做这一天,一周,一个月,一年? – Brendan 2010-04-27 22:31:06
@Brendan:它可能并不比单独的查询更有效率,但是可以创建一个临时表(称为'cutoff_times')和5个临界值,然后执行'main_table AS m JOIN cutoff_times AS t ON m.submission_date> t.cutoff_date'。这是一个'大于连接'而不是通常的等连接。 – 2010-04-27 22:57:28
- 1. 是否有可能将这个mySQL语句重写为redbean ORM的WHERE子句?
- 2. 是否有可能在select语句的where子句卡桑德拉
- 3. 是否有可能通过mysql获取表的创建语法?
- 4. 在mysql中创建动态where子句
- 5. 动态创建WHERE语句
- 6. 是否有可能在MySQL的select语句上触发?
- 7. 是否有可能在html.partial中添加where子句
- 8. WHERE语句中的可选AND MySQL
- 9. 是否有可能在Java中从MySQL创建新帐户?
- 10. LINQ中有多个.Where()语句是性能问题?
- 11. 你可以在MySQL查询中的WHERE语句中有OR吗?
- 12. MYSQL WHERE LIKE语句
- 13. MYSQL where IF语句?
- 14. Java问题:是否有可能在另一个switch语句中有switch语句?
- 15. 是否有可能追溯在表上使用的“创建索引”语句
- 16. 不能在mysql查询中有两个where语句
- 17. 是否有可能在Python中使用RETURN语句创建带有多个IF和OR的单线程?
- 18. 是否有可能在UITableView中创建多个列?
- 19. 如何添加多个查询WHERE语句,可能有或可能没有值
- 20. 是否可以在WHERE子句中使用MySQL字段值?
- 21. 可能检查AS语句变量中的WHERE? MySQL的
- 22. 是否有可能从C#函数谓词中构建SQL where子句?
- 23. 是否有可能创建一个选择在MySQL系列?
- 24. 是否有可能创建只读在MySQL选项查看?
- 25. 是否可以在单个sqlplus select语句中拥有多个CASE语句?
- 26. 是否有可能为动态if语句创建表达式树?
- 27. 是否有可能在C#中强制使用using语句?
- 28. 是否有可能在PHP中使用方法获取语句?
- 29. 是否有可能在if语句中使用heredoc?
- 30. tsql:是否有可能在select中嵌套case语句?
何处> xyz AND sold = 1? – 2010-04-27 22:17:51
我知道如何使用AND和OR语句。我想我想知道是否有一种方法来分组语句返回多个结果集 – Brendan 2010-04-27 22:25:34