Php 雄辩的查询-多列计数和求和

Php 雄辩的查询-多列计数和求和,php,mysql,sql,laravel,eloquent,Php,Mysql,Sql,Laravel,Eloquent,我试图运用这个问题的知识 在我的透视表中 用户态度我有两列: 重要性(用户正在声明其兴趣(0,3)) 态度(基本上这一个用于向上投票和向下投票,值为“-1”、“0”和“1”) 我现在所拥有的: 我可以打印按selectRaw创建的值排序的实体列表 我需要的是: 我希望打印下面描述的所有四个值中的一个不同的值,其中一个用于排序 我希望使用AJAX创建几个排序开关,以便用户可以更改排序 对于每一个,我需要输出多达四个计数: 重要性总分: SUM(user_attitudes.importanc

我试图运用这个问题的知识

在我的透视表中 用户态度我有两列:

  • 重要性(用户正在声明其兴趣(0,3))

  • 态度(基本上这一个用于向上投票和向下投票,值为“-1”、“0”和“1”)

我现在所拥有的: 我可以打印按selectRaw创建的值排序的实体列表

我需要的是: 我希望打印下面描述的所有四个值中的一个不同的值,其中一个用于排序

我希望使用AJAX创建几个排序开关,以便用户可以更改排序

对于每一个,我需要输出多达四个计数: 重要性总分:

SUM(user_attitudes.importance) AS importance
要显示有多少用户正在观察实体,请执行以下操作:

COUNT(user_attitudes.importance) AS observing
赞成票和反对票总数:

SUM(user_attitudes.attitude) AS karma
否决或否决iven实体的用户数:

COUNT(user_attitudes.importance) AS 
如何展开下面的查询? 在这个查询中,我在哪里可以要求提供上述额外的数字

$rank_entities = Entity::leftJoin('user_attitudes', function($q){
                $q->on('entity_id', '=', 'entities.id');
                $q->where('item_type', '=', 'entity');
            })
            ->selectRaw('entities.*, SUM(user_attitudes.importance) AS importance')
            ->groupBy('entities.id')
            ->orderBy('importance', 'desc')
            ->take(6)
            ->get(); 
我试着再加一个

->selectRaw('entities.*, SUM(user_attitudes.attitude) AS karma')
但似乎只有一个selectRaw可以创建可打印的变量
有什么想法吗?thx.

只需将它们添加到当前的
中,然后选择raw
?在这里,我使用一个数组使其更干净:

$selects = array(
    'entities.*',
    'SUM(user_attitudes.importance) AS importance',
    'COUNT(user_attitudes.importance) AS observing',
    'SUM(user_attitudes.attitude) AS karma'
);

// query ...

->selectRaw(implode(',', $selects))

你能帮我写这篇文章吗<代码>https://stackoverflow.com/q/51226415/1830228谢谢