- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在问这个问题之前,我用谷歌搜索了一段时间,但找不到关于这个主题的任何相关信息。
我的问题很简单:
我有 NHibernate 标准和投影,我正在尝试设置 DISTINCT ON(column)
我的投影代码如下:
criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.Distinct(Projections.Property("ID")))
.Add(Projections.Property("A"))
.Add(Projections.Property("B"))
);
这会生成以下 SQL(稍微简化):
SELECT DISTINCT ID, A, B FROM ABC ORDER BY A
但不幸的是,如果这个查询的性能非常非常差。
我已经优化了运行速度更快的 SQL,如下所示:
SELECT DISTINCT ON (A) ID, A, B FROM ABC ORDER BY A
无论如何,我可以让 NHibernate 生成我刚才展示的 SQL 吗?这个问题可以用 NHibernate 的方言解决吗?
期待您的反馈!非常感谢!
最佳答案
无论如何,这都不是最优雅的解决方案,但我想知道您是否可以通过使用“SQLProjection”来完成所需的工作?我是一个 Java 专家,所以这里的代码可能不完全正确,但是下面的方法看起来对我使用 Postgres 很有效:
criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.SqlProjection("DISTINCT ON(A) ID"))
.Add(Projections.Property("A"))
.Add(Projections.Property("B"))
);
它会生成您在问题中给出的优化 SQL 查询。同样,如果您正在做一些高度动态的事情,这种方法可能行不通,但它是解决问题的一种方法。
关于.net - NHibernate调用PostgresSQL的SELECT DISTINCT ON(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1799349/
最近用PostgresSql数据库进行多表关联删除的操作,在写sql语句的时候遇到了问题: ?
以下 postgres 查询有效: dvdrental=# SELECT title, COUNT(title) AS c FROM film JOIN inventory ON f
我必须遵循在 postgres 中工作的迁移: ALTER TABLE task_def DROP COLUMN retry_count, DROP COLUMN timeout_second
我已经使用 terraform 将 Azure PostgresSQL 灵活服务器部署为 PAAS,运行良好。现在我想使用 terraform 创建不同的角色并为数据库分配不同的权限。但它引发了下面提
给定以下数据: select a,b from newtable; a | b ---+--- a | f a | f a | f b | f b | f b | t (6 rows)
我想将一些数据从 postgresSQL 表导入到 Excel2016。我通过单击“新查询”并选择“从数据库”->“从 PostgresSQL 数据库”来尝试: 但随后我收到以下错误: Details
大家好,我在 Postgres 上的第一个数据库遇到了一个问题,我找不到解决方案,我试图查看是否是设置自动提交的问题,但显然从 postgres 9.x 来看,这是一个不确定的操作。该文档表明这可能是
我是一名优秀的程序员,十分优秀!