相关疑难解决方法(0)

与Postgresql JSON数据列不同

试图在带有rails的模式上做区别.

2.1.1 :450 > u.profiles.select("profiles.*").distinct


Profile Load (0.9ms)  SELECT DISTINCT profiles.* FROM "profiles" INNER JOIN "integration_profiles" ON "profiles"."id" = "integration_profiles"."profile_id" INNER JOIN "integrations" ON "integration_profiles"."integration_id" = "integrations"."id" WHERE "integrations"."user_id" = $1  [["user_id", 2]]
PG::UndefinedFunction: ERROR:  could not identify an equality operator for type json
LINE 1: SELECT DISTINCT profiles.* FROM "profiles" INNER JOIN "integ...
                        ^
: SELECT DISTINCT profiles.* FROM "profiles" INNER JOIN "integration_profiles" ON "profiles"."id" = "integration_profiles"."profile_id" INNER JOIN "integrations" ON "integration_profiles"."integration_id" = "integrations"."id" WHERE "integrations"."user_id" = $1
ActiveRecord::StatementInvalid: …
Run Code Online (Sandbox Code Playgroud)

postgresql ruby-on-rails ruby-on-rails-3 postgresql-json

38
推荐指数
3
解决办法
2万
查看次数

PostgreSQL:同一个表中每个项目的前n个条目

| uId |   title   |  amount  |  makers  |  widgets  |
   1     richard      998       xcorp     sprocket
   2     swiss        995       ycorp     framitz
   3     ricky         90       zcorp     flobber
   4     ricky2       798       xcorp     framitz
   1     lilrick      390       xcorp     sprocket
   1     brie         200       mcorp     gullywok
   1     richard      190       rcorp     flumitz
   1     brie         490       bcorp     sprocket
Run Code Online (Sandbox Code Playgroud)

等等...

我试图每个只检索3条记录makers,前3条amountswidgets它们产生

这就是我所拥有的:

SELECT amount, makers FROM (SELECT amount, makers, (SELECT count(*) FROM  entry  as t2
WHERE t2.amount = t1.amount and t2.makers >= …
Run Code Online (Sandbox Code Playgroud)

sql postgresql greatest-n-per-group

5
推荐指数
1
解决办法
6221
查看次数

从每个组sqlite中选择前n个记录

我试图从数据库表结果中选择前2个记录,如下所示

SubjectId |  StudentId | Levelid | total
------------------------------------------
 1        |  1         |   1     | 89
 1        |  2         |   1     | 77
 1        |  3         |   1     | 61
 2        |  4         |   1     | 60
 2        |  5         |   1     | 55
 2        |  6         |   1     | 45
Run Code Online (Sandbox Code Playgroud)

我试过这个查询

SELECT rv.subjectid,
       rv.total,
       rv.Studentid,
       rv.levelid
  FROM ResultView rv
       LEFT JOIN ResultView rv2
              ON ( rv.subjectid = rv2.subjectid 
    AND
rv.total <= rv2.total ) 
 GROUP BY rv.subjectid,
          rv.total,
          rv.Studentid
HAVING …
Run Code Online (Sandbox Code Playgroud)

sql sqlite greatest-n-per-group

5
推荐指数
2
解决办法
5542
查看次数

使用分页时如何提高嵌套 graphql 连接的性能

我正在尝试实施某种基本的社交网络项目。它有PostsComments并且Likes像其他任何一样。

  • 一个帖子可以有很多评论
  • 一个帖子可以有很多人点赞
  • 一篇文章可以有一个作者

/posts在客户端应用程序上有一条路线。它按分页列出Posts并显示它们的titleimageauthorName和。commentCountlikesCount

查询graphql是这样的;

query {
  posts(first: 10, after: "123456") {
    totalCount
    edges {
      node {
        id
        title
        imageUrl
        author {
          id
          username
        }
        comments {
          totalCount
        }
        likes {
          totalCount
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用apollo-serverTypeORMPostgreSQLdataloader我用来dataloader获取author每个帖子。authorIds我只是用批处理请求dataloaderauthorsPostgreSQL查询中获取where …

postgresql apollo graphql typeorm dataloader

5
推荐指数
1
解决办法
2146
查看次数

PostgreSQL:选择每组中的前三名

以下是我的示例表和行

create table com (company text,val int);


insert into com values ('com1',1),('com1',2),('com1',3),('com1',4),('com1',5);

insert into com values ('com2',11),('com2',22),('com2',33),('com2',44),('com2',55);

insert into com values ('com3',111),('com3',222),('com3',333),('com3',444),('com3',555);
Run Code Online (Sandbox Code Playgroud)

我希望获得每家公司的前三大价值,预计产量为:

company  val
---------------
com1     5
com1     4
com1     3
com2     55
com2     44
com2     33
com3     555
com3     444
com3     333
Run Code Online (Sandbox Code Playgroud)

sql postgresql group-by greatest-n-per-group

2
推荐指数
2
解决办法
9602
查看次数

在PostgreSQL中,如何根据分类列中每个级别的比例从表中随机抽样?

例如,如果我有一个名为 companyId 的列和我想保留的许多其他列,并且在 companyId 中我有 100、101、102 等值,基本上是一个 Id 列表,每个 Id 出现不同的次数。如何根据 companyId 列随机抽样数据,以便根据每个 Id 的比例?

例如:如果我有 500 行和 100 个 companyA、100 个 companyB 和 300 个 companyC,我想从这个表中采样 100 行。如何让我的数据有 20 个 companyA、20 个 companyB 和 60 个 companyC?

非常感谢。

sql random postgresql

2
推荐指数
1
解决办法
2478
查看次数

查阅属性的某些值的记录

我有一个表格,有以下方案(idMovie,流派,标题,评级).

如何查询返回每种类型的最佳评级的十部电影?

我认为可以使用'ORDER BY'和'LIMIT'来解决一个类型的前10名,但我不知道如何为每种类型做到这一点.

免责声明:我是sql的新手.

sql postgresql greatest-n-per-group

1
推荐指数
1
解决办法
46
查看次数