我目前正在开发一个将根据潜在客户数据生成报告的程序。我的问题是,我正在运行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. 是否可以使用SQL语句在MySQL Workbench中创建表?
- 3. 是否有可能有一个CASE语句中多个SELECT语句在SQL
- 4. 是否有可能在if语句中放置if else语句?
- 5. 是否有可能在select语句的where子句卡桑德拉
- 6. 是否有可能通过mysql获取表的创建语法?
- 7. 动态创建WHERE语句
- 8. 在mysql中创建动态where子句
- 9. 是否有可能在MySQL的select语句上触发?
- 10. 是否有可能在html.partial中添加where子句
- 11. 是否有可能在plpgsql的SELECT中附加WHERE子句?
- 12. 单个SQL语句 - 是否有可能?
- 13. WHERE语句中的可选AND MySQL
- 14. 是否有可能在mysql中创建事务合并表?
- 15. 是否有可能在Java中从MySQL创建新帐户?
- 16. 可能在一个MySQL WHERE语句中指定2列
- 17. LINQ中有多个.Where()语句是性能问题?
- 18. 你可以在MySQL查询中的WHERE语句中有OR吗?
- 19. Java问题:是否有可能在另一个switch语句中有switch语句?
- 20. 是否有可能追溯在表上使用的“创建索引”语句
- 21. MYSQL where IF语句?
- 22. MYSQL WHERE LIKE语句
- 23. 是否有可能在Python中使用RETURN语句创建带有多个IF和OR的单线程?
- 24. 不能在mysql查询中有两个where语句
- 25. MySQL COUNT在WHERE OR语句
- 26. WHERE和语句在MySQL
- 27. 是否有可能在同一个表中创建多发的MySQL查询?
- 28. 是否有可能在Silverlight 4 DataForm中创建多文本框?
- 29. 是否有可能在UITableView中创建多个列?
- 30. 是否有可能在pyserial中创建serial.Serial()的多个实例?
何处> xyz AND sold = 1? – 2010-04-27 22:17:51
我知道如何使用AND和OR语句。我想我想知道是否有一种方法来分组语句返回多个结果集 – Brendan 2010-04-27 22:25:34