小编Kam*_*ski的帖子

来自数据库的困难分组报告

ID  |  Start of range | End of range
------------------------------------
ID1 |  Ok-000001      | Ok-000009
ID1 |  Ok-000010      | Ok-000014
ID1 |  Ok-000015      |
ID1 |  Ok-000016      | Ok-000018
ID1 |  Ok-000037      | Ok-000042
ID2 |  Ok-000043      | Ok-000045
ID2 |  Ok-000046      | Ok-000052
Run Code Online (Sandbox Code Playgroud)

从上面的示例数据库记录中,我想生成一个具有以下格式的报告:

ID1 Ok-000001 - Ok-000018, Ok-000037 - Ok-000042
ID2 Ok-000043 - Ok-000052
Run Code Online (Sandbox Code Playgroud)

在实际数据库中,有554条记录,其中包含1,559个唯一ID.

我会接受任何和所有的指导.我知道我需要按ID分组.我知道我应该忽略"Ok-"并且只使用数值.我不知道如何查看一条记录中的"范围开始",看它是否是当前记录中"范围结束"的延续.

sql ms-access vba ms-access-2010

7
推荐指数
1
解决办法
66
查看次数

决策树中叶子的最短深度(比较排序算法)

参考比较排序算法的决策树中叶子的最短深度是多少?

它会根据算法改变吗?

sorting algorithm tree depth

6
推荐指数
1
解决办法
5578
查看次数

pg_restore到在docker容器中运行的postgres

我有一个数据库的备份,我将恢复到在docker容器内运行的postgres数据库.

我在OS X上使用的是docker-
machine.Postgres图像是postgres:9.4.

这是我到目前为止提出的脚本:

pg_restore --verbose --clean --no-acl --no-owner \
  -h tcp://`docker-machine ip default`:5432 \
  -U postgres \
  -d tonsser-api_development latest.dump
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我收到错误:

pg_restore: connecting to database for restore
pg_restore: [archiver (db)] connection to database "tonsser-api_development" failed: could not translate host name "tcp://192.168.99.100:5432" to address: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)

postgresql pg-restore docker docker-machine

6
推荐指数
2
解决办法
2521
查看次数

AWS 无法导入模块“app”:没有名为 Pymysql 的模块

我正在使用 AWS 控制台并尝试使用 Lambda 函数将数据添加到 MySQL 表。每当我尝试测试该函数时,都会出现以下错误:

无法导入模块“app”:没有名为 pymysql 的模块

它的行为就像 pymysql 不在路径中。我进入了 microEC2 实例并 pip'ed pymysql。但它仍然不起作用。我曾尝试将我的代码压缩到一个文件中并上传并将代码复制并粘贴到控制台并运行它。两者都不起作用。任何帮助将不胜感激。

这是一个代码片段:

import sys

import logging

import pymysql

def main(event, context):
Run Code Online (Sandbox Code Playgroud)

python import amazon-web-services pymysql

6
推荐指数
1
解决办法
1万
查看次数

检查Postgres中的数组中是否存在多个值中的任何一个

检查数组中是否存在一个值非常简单.例如,以下内容将返回true.

SELECT 'hello' = ANY(ARRAY['hello', 'bees'])
Run Code Online (Sandbox Code Playgroud)

但是,如果我想检查数组中是否存在多个值,该怎么办?例如,如果数组中存在'hello'或'bye',我想返回true.我想做点什么

SELECT ['hello', 'bye'] = ANY(ARRAY['hello', 'bees'])
Run Code Online (Sandbox Code Playgroud)

但这似乎不起作用.

编辑:

我还想弄清楚如何检查多个值是否具有公共前缀的数组中是否存在多个值.

例如,如果我想在数组包含前缀为'hello'的任何元素时返回true.所以我基本上想要类似的东西

SELECT ARRAY['hello%'] && ARRAY['helloOTHERSTUFF']
Run Code Online (Sandbox Code Playgroud)

是真实的.

arrays postgresql pattern-matching

6
推荐指数
1
解决办法
2302
查看次数

如何从 PostgreSQL 存储过程返回结果集?

PostgreSQL从版本 11 开始支持存储过程(不是函数)。我创建了一个这样的存储过程:

CREATE OR REPLACE PROCEDURE get_user_list ()
  LANGUAGE SQL
  SECURITY DEFINER
  AS $$
  SELECT "id",
         "username",
         "display_name"
  FROM "user"
  ORDER BY "created_at" ASC;
$$;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试执行这个存储过程时,它不返回任何数据:

postgres=# CALL get_user_list();
CALL
postgres=# SELECT * FROM get_user_list();
ERROR:  get_user_list() is a procedure
LINE 1: SELECT * FROM get_user_list();
                      ^
HINT:  To call a procedure, use CALL.
Run Code Online (Sandbox Code Playgroud)

所以问题是,存储过程如何在 PostgreSQL 11+ 中返回其结果集?

postgresql postgresql-11

6
推荐指数
1
解决办法
1万
查看次数

如何在 PostgreSQL 中分组和连接数组

我在 PostgreSQL 中有一张表。我想col在将它们分组后连接所有数组(即)time。数组具有不同的维度。

| time  | col               |
|------ |------------------ |
| 1     | {1,2}             |
| 1     | {3,4,5,6}         |
| 2     | {}                |
| 2     | {7}               |
| 2     | {8,9,10}          |
| 3     | {11,12,13,14,15}  |
Run Code Online (Sandbox Code Playgroud)

结果应如下所示:

| time  | col               |
|------ |------------------ |
| 1     | {1,2,3,4,5,6}     |
| 2     | {7,8,9,10}        |
| 3     | {11,12,13,14,15}  |
Run Code Online (Sandbox Code Playgroud)

到目前为止,我想出的内容如下:

SELECT ARRAY(SELECT elem FROM tab, unnest(col) elem);
Run Code Online (Sandbox Code Playgroud)

但这不会进行分组。它只需要整个表并将其连接起来。

arrays postgresql

6
推荐指数
1
解决办法
3733
查看次数

MySQL专栏:将现有的电话号码更改为特定格式?

我有一个包含电话号码的MySQL列,问题是它们的格式不同,例如:

  • 2125551212
  • 212-555-1212
  • (212)5551212

我想知道是否可以采用现有的10位数字,删除格式,并将它们全部更改为以下格式:(212)555-1212

不重复,因为我希望更新几千个条目而不是屏蔽新条目.

mysql phone-number

5
推荐指数
1
解决办法
4943
查看次数

PostgreSQL-检查给定的字符串是否以字符串数组的任何元素开头

给定两个字符串,我们可以执行以下操作:

select 'aaa123' ilike 'aaa'||'%'
Run Code Online (Sandbox Code Playgroud)

结果将为TRUE。我想对字符串和数组执行相同的操作-如果给定的字符串以字符串数组的任何元素开头,则结果将显示TRUE。

例如(数组和字符串):

select array['aaa123'::text,'bbb123'::text] as text_array
select 'aaa12345' as string
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情:

select string ilike ANY(text_array || '%')
Run Code Online (Sandbox Code Playgroud)

而且我期望为TRUE,因为aaa12345以aaa123(数组的元素)开头。

非常感谢您的帮助!

arrays postgresql

5
推荐指数
1
解决办法
9692
查看次数

Postgresql 9.5 安装 - 配置所有者 (postgres:105) 和数据所有者 (ubuntu:1000) 不匹配,并且配置所有者不是 root

在上安装postgres9.5ubuntu 14.04,以下命令因错误而停止:$sudo apt-get install postgresql-9.5 pgadmin3

这是错误消息:

 Preparing to unpack .../postgresql-9.5_9.5.4-1.pgdg14.04+2_amd64.deb ...
 * Stopping PostgreSQL 9.5 database server                                       * Error: Config owner (postgres:105) and data owner (ubuntu:1000) do not match, and config owner is not root
                                                                         [fail]
invoke-rc.d: initscript postgresql, action "stop" failed.
dpkg: warning: subprocess old pre-removal script returned error exit status 1
dpkg: trying script from the new package instead ...
 * Stopping PostgreSQL 9.5 database server                                       * Error: Config owner (postgres:105) and data …
Run Code Online (Sandbox Code Playgroud)

postgresql ubuntu ubuntu-14.04 postgresql-9.5

5
推荐指数
2
解决办法
8495
查看次数