mysql - HQL:计算集合中的空值

标签 mysql sql hibernate hql

我需要一个查询来计算某些实体(学生)的集合(Student.absences)中的空值(Absence.excuse)。

到目前为止,我成功创建了这个查询:

SELECT s, SUM(CASE WHEN a.excuse IS NULL THEN 1 ELSE 0 END)
    FROM Student AS s 
LEFT JOIN s.absences a 
WHERE s.class = :class 
GROUP BY s
ORDER BY s.ordinal

只有当学生在缺勤表中已经有一些缺勤(有或没有借口)时,这种方法才有效。如果学生根本没有缺勤,则返回 1。但我不知道这怎么可能。如果没有缺席,它会将 a.excuse 评估为 NULL 吗?

感谢您的帮助。

最佳答案

尝试使用

SELECT s, SUM(CASE WHEN (a.excuse IS NULL and a.id IS NOT NULL) THEN 1 ELSE 0 END)

关于mysql - HQL:计算集合中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951361/

相关文章:

php - 在本地变量之前设置 $_SESSION 的奇怪 PHP 变量行为

php - 生成mysql统计信息

java - Oracle SQL Developer 加载 Java 错误

java - Bean 验证不起作用

java - Liquibase Hibernate Java 8 支持

c++ - 从远程 MySQL 服务器本地导出 .csv 数据

php - 使用数据库中的数据更改按钮颜色

php - 高级 MySQL 搜索帮助

java - SQL 响应被视为列名,而不是 Java 中的内容

java - 使用 Hibernate 时未在多个事务中加载 Childs