我需要从数据库中检索值以在图表中绘制它们。为此,我需要在标准的基础上获得价值。必须将与不同标准匹配的数据作为不同的行/列返回到我的查询
(即)
我有一个名为TABLEA的表,它有一列TIME。我需要根据时间标准获得值,结果是匹配TIME> 1和TIME< 10的行的数量,结果是TIME> 11和TIME< 20,等等。是否可以在单个查询中获取值。我将Mysql与JDBC一起使用。
我应该在图表中绘制所有计数
提前致谢。
答案 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
即可。