我有一个表,其中包含,除其他列,一列浏览器版本。我只是想从记录中知道,每种类型的浏览器有多少。
我的代码是:
php prettyprint-override">$whereBrowser = [['owner', '=', 12]];
$browser = ProfileTracker::where($whereBrowser)->whereBetween('created_at', [Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()])->select([
DB::raw('browser'),
DB::raw('COUNT(browser) as value')
])->groupBy("browser")->orderBy("value", "desc")->take(10)->get();
输出:
"browser": [
{
"browser": "Chrome Mobile 84",
"value": 144
},
{
"browser": "Chrome Mobile 80",
"value": 84
},
{
"browser": "Chrome 84",
"value": 27
},
{
"browser": "Chrome 30",
"value": 22
},
{
"browser": "Chrome Mobile 83",
"value": 19
},
{
"browser": "Chrome Mobile 47",
"value": 10
},
{
"browser": "Firefox 79",
"value": 8
},
{
"browser": "Mobile Safari",
"value": 8
},
{
"browser": "Mobile Safari 13.1.2",
"value": 6
}
],
}
我想分组所有的浏览器,没有像这样的浏览器版本:
"browser": [
{
"browser": "Chrome",
"value": 306
},
{
"browser": "Safari",
"value": 14
},
{
"browser": "Firefox",
"value": 8
},
],
}
通过使用SUBSTRING\u INDEX函数提取第一个字符串,您可以使用substr浏览器名称:
$browser = ProfileTracker::where($whereBrowser)
->selectRaw("browser,SUBSTRING_INDEX(browser, ' ', 1) AS BrowserName,COUNT(browser) as value")
->whereBetween('created_at', [Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()])
->groupBy("BrowserName")->orderBy("value", "desc")->take(10)->get();
实现这一点的一种方法是在字符串中查找浏览器名称,并将其解析为查询中的浏览器名称。因此类似于mobilesafari15.1.2
的内容将被解析为Safari
:
ProfileTracker::selectRaw('
CASE
WHEN browser LIKE '%firefox%' THEN 'Firefox'
WHEN browser LIKE '%chrome%' THEN 'Chrome'
WHEN browser LIKE '%safari%' THEN 'Safari'
END AS browser_name,
count(1) AS count
')->groupBy('browser_name')->get();
请注意,我已经删除了查询生成器的一部分,以使这个示例更具可读性。你可以自己添加任何你需要的东西。
这将为您提供:
Chrome 1
Firefox 1
Safari 2
我的测试数据是:
"Chrome Mobile"
"Firefox 79"
"Mobile Safari 13.1.2"
"Mobile Safari 15.1.2"
我有一个表,其中包括一列浏览器版本。我只是想从记录集中知道每种浏览器有多少种。所以,我需要这样结束:总记录:10;InternetExplorer 8:2;铬25:4;火狐20:4。(总计10) 这是我的两便士: 当然,它只包含3个浏览器,而不是每个浏览器的数量。我该怎么做呢?
我想使用Laravel Eloquent完成任务。我在网上搜索过,没有找到任何有说服力的东西。有些人将groupBy()查询与查询生成器一起使用,如以下链接 但是我想创建这样的查询风格: 此代码仅返回第一个的计数。但是我要计算所有的。
问题内容: 在此查询中,我指定要退回(硬编码)的汽车型号。因此,下面的SQL为每种模型返回 一条 记录: 现在有可能在没有联合的情况下使此SQL返回多个由某个字段指定的模型。例子: 我知道“拥有数量”没有意义,但是我需要一种方法来指定每个模型要返还多少辆汽车。 http://sqlfiddle.com/#!2/421e4/1/0 问题答案: 尝试像下面那样为每个组生成行号,然后将行数限制为im以下
嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!
我有两张桌子。 产品品牌 我试图用最多的产品返回前十大品牌型号。 我试过了。 但是它不返回孔模型,只返回 品牌 计数 我也试过 但是我得到了错误: SQLSTATE[42S22]:未找到列:“where子句”中的1054未知列“brands.id”(SQL:选择count(*)作为从whereid=
如何将以下查询转换为Laravel4雄辩ORM?