我目前正在使用群组检索数据,以获得相同的宝藏名称,总发现和相同的宝藏数量(上限)。使用下面的代码,我可以得到所有的宝藏数据,但是当宝藏被完全认领时,它无法显示total_left是0。
*声明的列是一个布尔值,其中0尚未声明。
查询
$treasure_hunt_data = TreasureHunt::where('claimed', '0')
->selectRaw(" treasure_name, count(claimed) as total_left, cap")
->groupBy(['treasure_name', 'cap'])
->get();
数据
[
{"treasure_name":"Location A","total_left":5,"cap":5},
{"treasure_name":"Location B","total_left":2,"cap":2},
{"treasure_name":"Location C","total_left":2,"cap":2},
{"treasure_name":"Location D","total_left":10,"cap":10}
]
期望数据
[
{"treasure_name":"Location A","total_left":5,"cap":5},
{"treasure_name":"Location B","total_left":2,"cap":2},
{"treasure_name":"Location C","total_left":2,"cap":2},
{"treasure_name":"Location D","total_left":10,"cap":10},
{"treasure_name":"Location E","total_left":0,"cap":1}
]
以下是数据库中的实际记录:
[{"id":1,"name":"Location A","value":1,"total":"10","created_at":null,"updated_at":null},
{"id":2,"name":"Location B","value":1,"total":"220","created_at":null,"updated_at":null},
{"id":3,"name":"Location C","value":1,"total":"42","created_at":null,"updated_at":null},
{"id":4,"name":"Location D","value":0,"total":"23","created_at":null,"updated_at":null},
{"id":5,"name":"Location A","value":1,"total":"233","created_at":null,"updated_at":null}]
尝试此查询以检索数据:
$treasure_hunt_data = TreasureHunt::select(
'treasure_name',
\DB::raw('sum(case when claimed = 1 then 1 else 0 end) as total_left'),
\DB::raw('sum(cap) as cap')
)
->groupBy('treasure_name')
->get();
以下是上述查询的结果:
[{"name":"Location A","total_left":"2","total":243},
{"name":"Location B","total_left":"1","total":220},
{"name":"Location C","total_left":"1","total":42},
{"name":"Location D","total_left":"0","total":23}]
您可以使用CTE(公共表表达式)和DB::select
语句来实现这一点。例如:
$treasure_hunt_data = DB::select("
with treasure_data as (
select treasure_name, count(claimed) as total_left, cap
from treasure_hunt
where claimed = 0
group by treasure_name, cap
)
select * from treasure_data where total_left = 0
");
它将以数组的形式返回结果集。
我试图从我的链接表sfees中获取数据,它由来自学生表的学生id和来自M_费用表的MFEEID组成。我的模型是: M_fees: 现在,我如何检索特定学生的学费(类型和金额)?我在控制器中使用了以下功能: 但它似乎不起作用。 有人能帮我吗?
SELECT 语句 是最常用的SQL语句了,用来索引一个或者多个表信息。 关键字(keyword) 作为SQL组成部分的字段,关键字不能作为表或者列的名字。 使用SELECT索引数据,必须至少给出两条信息,想要什么? 从什么地方获取? 检查单个列 SELECT prod_name FROM Products; 解释:使用SELECT 语句从 Products 表中检索一个名为prod_name
SELECT语句用于从表中检索数据,通常格式如下: SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to_select 表示你想看到的数据,可以是具体列,也可以是*(代表所有列)。 which_table 表示你要从哪个表中检索数据。 WHERE 是可选的,如果有的话,conditions_to_s
我正在使用使用Tweepy库的Python代码来检索特定主题标签的Twitter数据,但问题是我需要检索特定时期,例如,从2013年6月30日到2013年12月30日。我该怎么做?
在本章中,我们将讨论如何使用Java Client API检索数据。假设有一个名为sample.csv的.csv文档,其中包含以下内容。 可以使用命令在核心-下对此数据编制索引。 以下是向Apache Solr索引添加文档的Java程序代码。将此代码保存在的文件中。 通过在终端中执行以下命令编译上述代码 - 执行上述命令后,将得到以下输出。
缓存项: 内部映射可以有多达25000个元素/桶。redis中有没有一种方法可以根据密钥(redis密钥、外部映射的密钥和内部映射的密钥)从内部映射中检索特定的值,而不必在访问这个redis缓存的Java方法中获取整个redis条目? 当前,如果我必须从内部映射中删除一个特定的键,我会以以下方式进行: