小编GMB*_*GMB的帖子

何时使用浮点数与十进制数

我正在构建这个 API,数据库将存储代表以下之一的值:

  • 百分比
  • 平均数
  • 速度

老实说,我不知道如何表示范围在 0 到 100% 之间的数字。应该是

  • 0.00 - 1.00
  • 0.00 - 100.00
  • 我不知道的任何其他选择

对此有明确的选择吗?在数据库上表示从 0 到 100% 百分比的全局方式?更进一步,它的正确类型是什么,浮点数还是十进制数?

谢谢你。

mysql sql floating-point types decimal

16
推荐指数
2
解决办法
1088
查看次数

SQL:postgreSQL 中 json_pretty() 的等价物是什么

这个 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()按照文档中提到的方式尝试过,但没有任何可用的

sql postgresql json dataformat jsonb

14
推荐指数
1
解决办法
9034
查看次数

在 postgresql 上使用 IF 语句进行选择

我有这样的代码:

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 语句语法似乎使用正确

sql postgresql sum case aggregate-functions

12
推荐指数
2
解决办法
3万
查看次数

合并具有多个参考的用户并计算他们的集体资产

有一组用户。一个人可以拥有多个用户,但ref1ref2可能相似,因此可以将用户链接在一起。ref1ref2不重叠,则 中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 …

sql arrays postgresql graph-theory aggregate-functions

12
推荐指数
1
解决办法
440
查看次数

Mysql 将默认值设置为 json 类型的列

我听说 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

mysql sql json create-table mysql-workbench

11
推荐指数
3
解决办法
8270
查看次数

如何将集合返回函数移动到 LATERAL FROM 项目 PostgreSQL

我试试这个

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 文档,但并没有真正理解横向功能

sql arrays postgresql json lateral-join

11
推荐指数
1
解决办法
9915
查看次数

MySQL 如何索引 JSON 数组?

我有一个带有一维数组的 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)

我的问题是:我应该为此字段创建一个索引吗?如果是的话,我应该使用哪个索引?

mysql sql indexing json query-optimization

10
推荐指数
1
解决办法
9586
查看次数

如果两个键相同但值不同,谁能解释如何打印所有键?

在这段代码中,两个键“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)

string perl hash

9
推荐指数
2
解决办法
157
查看次数

SQL (Maria DB) 将由逗号分隔的字符串拆分为行

我有这个专栏:

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 函数

sql csv string recursive-query mariadb

9
推荐指数
2
解决办法
7088
查看次数

如何在 Presto 中旋转表格?

设一个名为 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 pivot group-by dynamic-pivot presto

8
推荐指数
1
解决办法
5386
查看次数