Prisma - 按_sum排序
Prisma - Sort by _sum
我的 prisma 中确实有简单的 groupBy 查询,如下所示:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
});
我要找的是按这个_sum值排序的方法。
当前回复为:
{
"groupBy": [
{
"_sum": {
"points": 20000
},
"recommenderId": 3
},
{
"_sum": {
"points": 19000
},
"recommenderId": 2
},
{
"_sum": {
"points": 34000
},
"recommenderId": 1
}
]
}
我需要得到的是:
{
"groupBy": [
{
"_sum": {
"points": 34000
},
"recommenderId": 1
},
{
"_sum": {
"points": 20000
},
"recommenderId": 3
},
{
"_sum": {
"points": 19000
},
"recommenderId": 2
},
]
}
根据文档 (https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting#sorting) 我试过这样的事情:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
orderBy: [
{
_sum: 'desc',
},
],
});
但是使用代码时出现错误:
Argument _sum: Got invalid value 'desc' on prisma.groupByReferral.
Provided String, expected ReferralSumOrderByAggregateInput
您可以同时在不同的字段上使用_sum
,所以您还需要提供您要排序的字段名称:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
orderBy: [
{
_sum: {
// Add `points` key here
points: 'desc'
}
},
],
});
我的 prisma 中确实有简单的 groupBy 查询,如下所示:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
});
我要找的是按这个_sum值排序的方法。
当前回复为:
{
"groupBy": [
{
"_sum": {
"points": 20000
},
"recommenderId": 3
},
{
"_sum": {
"points": 19000
},
"recommenderId": 2
},
{
"_sum": {
"points": 34000
},
"recommenderId": 1
}
]
}
我需要得到的是:
{
"groupBy": [
{
"_sum": {
"points": 34000
},
"recommenderId": 1
},
{
"_sum": {
"points": 20000
},
"recommenderId": 3
},
{
"_sum": {
"points": 19000
},
"recommenderId": 2
},
]
}
根据文档 (https://www.prisma.io/docs/concepts/components/prisma-client/filtering-and-sorting#sorting) 我试过这样的事情:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
orderBy: [
{
_sum: 'desc',
},
],
});
但是使用代码时出现错误:
Argument _sum: Got invalid value 'desc' on prisma.groupByReferral. Provided String, expected ReferralSumOrderByAggregateInput
您可以同时在不同的字段上使用_sum
,所以您还需要提供您要排序的字段名称:
const groupBy = await prisma.referral.groupBy({
by: ['recommenderId'],
_sum: {
points: true,
},
orderBy: [
{
_sum: {
// Add `points` key here
points: 'desc'
}
},
],
});