我正在构建这个 API,数据库将存储代表以下之一的值:
老实说,我不知道如何表示范围在 0 到 100% 之间的数字。应该是
对此有明确的选择吗?在数据库上表示从 0 到 100% 百分比的全局方式?更进一步,它的正确类型是什么,浮点数还是十进制数?
谢谢你。
这个 MySQL 函数相当于什么
SELECT JSON_PRETTY('{"a": 1, "b": 2, "c": 3}') AS Result
FROM table;
Run Code Online (Sandbox Code Playgroud)
格式化 JSON:
+------------------------------+
| Result |
+------------------------------+
| { |
| "a": 1, |
| "b": 2, |
| "c": 3 |
| } |
+------------------------------+
Run Code Online (Sandbox Code Playgroud)
我已经jsonb_pretty()按照文档中提到的方式尝试过,但没有任何可用的
我有这样的代码:
select
tbl.person
,COUNT(distinct tbl.project)
,if (tbl.stage like '%SIGNED%') then sum(tbl.value) else '0' end if as test
from
my_table tbl
group by
1
Run Code Online (Sandbox Code Playgroud)
它返回给我该错误消息:
SQL Error [42601]: ERROR: syntax error at or near "then"
Run Code Online (Sandbox Code Playgroud)
我没明白。正如我在文档中看到的,if 语句语法似乎使用正确
有一组用户。一个人可以拥有多个用户,但ref1和ref2可能相似,因此可以将用户链接在一起。ref1且ref2不重叠,则 中ref1不存在 中的一个值ref2。
一个用户可以拥有多种资产。我想“合并”具有一个或多个相似参考的用户,然后计算他们总共拥有多少资产。用户表中可能缺少条目,在这种情况下,我只想将所有者传播到 ref2 并设置 asset_count 和 asset_ids。
下面是一个示例架构来说明:
示例资产
SELECT * FROM assets;
Run Code Online (Sandbox Code Playgroud)
| ID | 姓名 | 所有者 |
|---|---|---|
| 1 | #1 | A |
| 2 | #2 | 乙 |
| 3 | #3 | C |
| 4 | #4 | A |
| 5 | #5 | C |
| 6 | #6 | d |
| 7 | #7 | e |
| 8 | #8 | d |
| 9 | #9 | A |
| 10 | #10 | A |
| 11 | #11 | z |
用户示例
SELECT * FROM users;
Run Code Online (Sandbox Code Playgroud)
| ID | 用户名 | 参考1 | 参考2 |
|---|---|---|---|
| 1 | 波波 | A | d |
| 2 | 托托 | 乙 | e … |
我听说 8.0.13 之前的 mysql 版本接受 json 类型列的默认值,所以我使用 cmd:
ALTER TABLE templates CHANGE COLUMN values JSON NOT NULL DEFAULT '{}' ;
Run Code Online (Sandbox Code Playgroud)
但收到错误:
Error Code: 1101. BLOB, TEXT, GEOMETRY or JSON column 'values' can't have a default value
Run Code Online (Sandbox Code Playgroud)
那么我该如何解决呢?
我正在使用 mysql 版本 8.0.19 和客户端工具 Workbench
我试试这个
select created_at,
sum((json_array_elements(shipping_lines::json) ->> 'price')::float) as shipping_price
from t1
group by 1
Run Code Online (Sandbox Code Playgroud)
它显示错误:
错误:聚合函数调用不能包含设置返回函数调用第 5 行:sum(((json_array_elements(shipping_lines::json) ->> 'price')... ^ 提示:您也许可以移动设置返回函数进入 LATERAL FROM 项目。
如何使用 Lateral From 解决这个问题?我读了这个 PsSQL 文档,但并没有真正理解横向功能
我有一个带有一维数组的 JSON 字段。事实上,在这个字段中我有一些 ID 的列表,如下所示:
[347470, 162063, 17315, 346852, 174776, 295865, 7833, 136813]
Run Code Online (Sandbox Code Playgroud)
在我的查询中,我这样引用该字段:
... AND JSON_CONTAINS(`users_actions`, 174776)=0
Run Code Online (Sandbox Code Playgroud)
我的问题是:我应该为此字段创建一个索引吗?如果是的话,我应该使用哪个索引?
在这段代码中,两个键“39”同名但值不同,我想打印两个键
use strict;
use warnings;
my %studentnames = (
14 => Martha,
27 =>Vivek,
31 =>Era,
16 =>Marty,
25 =>Jason,
29 =>Socrates,
19 =>Uri,
39 =>Nitin ,
39 =>Plato,
);
foreach my $name (sort keys %studentnames)
{
printf "%-8s %s\n", $name, $studentnames{$name};
}
Run Code Online (Sandbox Code Playgroud)
我收到错误。
Bareword "Martha" not allowed while "strict subs" in use at /home/9945b48d30946ed2641d9778b42cb182.pl line 10.
Bareword "Vivek" not allowed while "strict subs" in use at /home/9945b48d30946ed2641d9778b42cb182.pl line 10.
Bareword "Era" not allowed while "strict subs" in use at …Run Code Online (Sandbox Code Playgroud) 我有这个专栏:
names
John, Mary
Joseph
Eleanor, Sophia, Dani
Run Code Online (Sandbox Code Playgroud)
我想要这个输出:
names
John
Mary
Joseph
Eleanor
Sophia
Dani
Run Code Online (Sandbox Code Playgroud)
它应该包括 SUBSTRING_INDEX 函数
设一个名为 data 的表,其中包含 time、sensor、value 列:
我想在 Athena (Presto) 上旋转该表以获得一个像这样的新表:
为此,可以运行以下查询:
SELECT time,
sensor_value['temperature'] as "temperature",
sensor_value['pressure'] as "pressure"
FROM (
SELECT time, mapp_agg(sensor, value) sensor_value
FROM data
GROUP BY time
)
Run Code Online (Sandbox Code Playgroud)
这效果很好。但是,我必须指定sensor_value 的键。因此,我需要知道传感器的唯一值,然后相应地手动编写查询。问题是我没有这样的信息。您知道解决此问题的通用(且有效)解决方案吗?我真的很感激任何帮助。谢谢。
sql ×9
json ×4
postgresql ×4
mysql ×3
arrays ×2
string ×2
case ×1
create-table ×1
csv ×1
dataformat ×1
decimal ×1
graph-theory ×1
group-by ×1
hash ×1
indexing ×1
jsonb ×1
lateral-join ×1
mariadb ×1
perl ×1
pivot ×1
presto ×1
sum ×1
types ×1