首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 4流畅计数

Laravel 4流畅计数
EN

Stack Overflow用户
提问于 2013-08-23 07:52:04
回答 2查看 2.4K关注 0票数 0

我正在使用Laravel4php框架,我需要使用fluent查询生成器来获取一些统计类型数据。我有一个数据库表,它的结构类似于折叠

代码语言:javascript
运行
复制
id: int
group_id: int
sent_at: datetime
message_id: int

我需要一个流畅的查询,它将获得具有相同消息id的所有行的计数,我还希望由group_id组织该计数。

例如,我的消息id为1,而消息id为1的每一行的组id可能相同,也可能不相同。我需要知道给定消息id的表中有哪些组id,以及每个组id的总数是多少。

我希望这是有意义的。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-23 12:44:09

这是Laravel 4版本:

代码语言:javascript
运行
复制
$message_id = 1;

// You can change "amount" to anything that best suits you
// The `orderBy` line is not necessary, but I'm assuming you will may need it.
$groups = DB::table('YOUR_TABLE_NAME')
    ->select(array('group_id', DB::raw('COUNT(*) `amount`')))
    ->where('message_id', '=', $message_id)
    ->groupBy('group_id')
    ->orderBy('amount', 'DESC')
    ->get();

foreach ($groups as $g) {
    echo "$g->group_id has $g->amount messages with id $message_id";
}
票数 2
EN

Stack Overflow用户

发布于 2013-08-23 07:59:36

尝试该查询以获取每个group_id的message_id计数:

代码语言:javascript
运行
复制
SELECT message_id, count(group_id) FROM table GROUP BY message_id

要获得给定的message_id,只需使用"WHERE":

代码语言:javascript
运行
复制
SELECT message_id, count(group_id) FROM table WHERE message_id = XX GROUP BY message_id

要获取给定message_id的所有message_id,只需使用这样的简单查询:

代码语言:javascript
运行
复制
SELECT group_id FROM table WHERE message_id = XX

如果这不是你想要的,请告诉我--我们会研究正确的:)

(当然,将" table“更改为表名)

编辑: Fluent版本示例,以获取用于group_id =1的message_id计数:

代码语言:javascript
运行
复制
$query = DB::table('table')
->select(array('message_id', DB::raw('COUNT(group_id) as group_count')))
->where('message_id', '=', 1)
->group_by('message_id')
->get();
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18397599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档