查询以多个条件从DB检索值

时间:2014-11-06 14:13:44

标签: mysql jdbc

我需要从数据库中检索值以在图表中绘制它们。为此,我需要在标准的基础上获得价值。必须将与不同标准匹配的数据作为不同的行/列返回到我的查询

(即)

我有一个名为TABLEA的表,它有一列TIME。我需要根据时间标准获得值,结果是匹配TIME> 1和TIME< 10的行的数量,结果是TIME> 11和TIME< 20,等等。是否可以在单个查询中获取值。我将Mysql与JDBC一起使用。

我应该在图表中绘制所有计数

提前致谢。

2 个答案:

答案 0 :(得分:0)

select sum(case when `time` between 2 and 9 then 1 else 0 end) as count_1,
       sum(case when `time` between 12 and 19 then 1 else 0 end) as count_2
from your_table

答案 1 :(得分:0)

这可以使用CASE语句完成,但它们可能会变得冗长。您可能只想依赖布尔(true / false)逻辑:

SELECT
    SUM(TIME BETWEEN 1 AND 10) as `1 to 10`,
    SUM(TIME BETWEEN 11 and 20) as `11 to 20`,
    SUM(TIME BETWEEN 21 and 30) as `21 to 30`
FROM
    TABLEA

短语TIME BETWEEN 1 AND 10) will either return TRUE or FALSE for each record. TRUE being equivalent to 1 and FALSE being equivalent to 0`,我们只需要求结果并给我们的新领域起一个名字。

我还假设您想要记录1 <= TIME <= 10而不是1 < TIME < 10所记录的记录,因为如上所述,它会在TIME为1,10,20等时丢弃值。如果那是您的预期结果,那么您只需将TIME BETWEEN 1 AND 10调整为TIME BETWEEN 2 AND 9即可。