我在表Customer_Details中有一列,比如Phone_Number。将有多个进程/查询同时更新列“Phone_Number”。每次同时更新后,我想保留'Phone_Number‘列的值。默认情况是:保留“Phone_Number”列的最新更新。
1.解决方案1(要添加的新列):有不同的列来更新不同的进程。
例如:新列将插入表'Customer_Details‘中,称为'Phone_Number_Web’和'Phone_Number_Mobile‘,然后两个查询将更新各自的列。在获取值时,将合并这两列数据。
2.解决方案2 (锁表: Not a opt
基于下表
Name
---------
A
A
A
B
B
C
C
C
我想向这个表中添加另一个名为'OnGoing‘的列,并且每个名称组的值应该是交替的。只有两个值'X‘和'Y’。因此,该表将如下所示
Name OnGoing
----------------
A X
A X
A X
B Y
B Y
C X
C X
C X
如何编写可以为每组名称交替取值的查询。
我想将upsert查询从Oracle DB迁移到PostgreSQL。下面显示了一条Oracle预准备语句,该语句从dual中获取值,并在虚拟表上执行upsert操作。 MERGE INTO DUMMY a
USING (SELECT ? ID,
? NAME,
? SIZE from dual) b
ON (a.ID = b.ID)
WHEN MATCHED THEN
UPDATE
SET a.ID = b.ID,
a.NAME = b.NAME,
a.SIZE = b.SIZE
WHE
我想编写一个查询,从有序表中提取行,同时聚合一列的值,直到所述聚合值达到所需的阈值为止。
另一个条件是,超过阈值的违规行应包括在查询结果中。
我寻找了用PostgreSQL完成的其他解决方案,引导我创建了以下查询:
SELECT * FROM (
SELECT *, SUM(amount) OVER (ORDER BY amount DESC) AS running_amount
FROM public.orders WHERE price = 0.09) AS t
WHERE t.running_amount <= 15;
但是,此查询的问题在于它表示一个Postgre
我有两个表,A,B。A有两列A1和A2。B有两列B1和B2。在我的例子中,A2和B2中的一些值是相同的,对于这种情况,我希望更新A1 = B1。因此,当A2 = B2时,A1应该从B1中获取值。我已经写了下面的查询,但它使表A中的所有值都为空。有人能帮我解决这个问题吗?
Update A
SET A.A1 = (Select B1 from B Where A.A2 = B.B2)
我有一个photos表,我试图通过使用WHERE子句过滤数据从另一个表中插入一个新列。下面是我要执行的查询:
ALTER TABLE photos ADD COLUMN new_count BIGINT;
INSERT INTO photos (new_count)
SELECT c.cnt
FROM c
WHERE
c.created = photos.created;
但结果是,我得到了一个错误:
Error : ERROR: invalid reference to FROM-clause entry for table "photos"
LINE 5:
jsonb列text_results包含以下形式的值:{'Name‘:'john doe’,'id‘:'123'}
论查询
Select text_results->>'Name' as Name from user_master
或
Select json_extract_path_text(text_results::json,'Name') as name from user_master
即使存在值,它始终不返回任何错误。
需要帮助纠正错误或从POSTGRESQL中的json列提取值的任何其他方法。
提
我有一个包含多列的表。我使用的是SQL Server 2008。我需要根据从另一个表中获得的值,为每个raw更改表增量中某一行的值。
例如,如果我的表项是:
row1 row2 row3
kk aa 1
bb ss 2
我需要从另一个表中读取值,例如: MAX(Table_2.row9)=5,然后将该表修改为:
row1 row2 row3
kk aa 6
bb ss 7
我知道IDENTITY列我的想法是让列作为IDENTITY,然后有一个类似如下的代码:
我更改了node中的模型,在启动应用程序时,迁移不会更改postgresql表。我可以看到查询CREATE TABLE IF NOT EXISTS正在表上运行,但我猜它不会检查是否添加/删除了一列。如何通过node完成此操作,以便由应用程序自动处理和迁移这些更改?目前,我正在调用要迁移的sync()函数。 let membres = await Membership.sync();
我有两个msaccess表
tableA
textA numA
bd 1
as 0
aa 2
cc 4
tableB
textB
ss
aa
bd
as
如何编写一个sql查询来在表B中添加一个名为numB的列,以便最终的表B
tableB (基本上是从tableA获取值)
textB numB
ss 0 ( because ss is not there in table A )
aa 2
bd 1
as 0
我需要对大小为100亿行的三列表t (s,p,o)运行200万次查询。每一列的数据类型为字符串。
只有两种类型的查询:
select s p o from t where s = param
select s p o from t where o = param
如果我将表存储在Postgresql数据库中,则使用Java ThreadPoolExecutor需要6个小时。
你认为Spark能更快地处理查询吗?最好的策略是什么?以下是我的想法:
将表加载到一个dataframe中,并启动对dataframe的查询。
将表加载到parquet数据库中,并对该数据库启动查询
我使用的是PostgreSQL 9.1。我需要将所需的列从一个数据库的一个表转移到另一个数据库的另一个表中,但不需要模式。
我发现share/contrib中必须有dblink.sql文件。但是我的contrib文件夹是空的。我可以在哪里下载dblink.sql文件并执行我的查询?
当我现在执行查询时,它显示了一条错误消息:
cross database reference is not possible ...
谁能告诉我如何在两个数据库之间传输数据?
我需要在Postgresql中从一个表插入一些数据到另一个表。我需要填充数据的表的架构如下所示:
create table public.test_int_table(
id int,
description text,
hash_code int
);
问题是另一个表中的id列是bigint类型的。因此,当我试图将咬人数据插入int列时,我得到了一个异常:
insert into public.test_int_table
select * from public.t
表A列
Id,Quantity,Name
表B列
Id,Order_Date,A_Id
有谁知道如何编写条件查询来从多个表/POJO中获取值
Select a.*,b.Order_Date from A a,B b where a.Id=b.A_Id
所以最终的结果必须是这样的Id,Quantity,Name,A_Id。
我刚刚开始学习Hibernate,我只知道从一个表/POJO中获取值
Criteria crit = this.getSession().createCriteria(A.class);
假设我在某个表中有一个text列。我可以使用以下命令从该列中选择一个值
(SELECT textcolumn from sometable WHERE ....)和查询结果将为'5>3'。
现在我想将这个结果添加到我的另一个查询中。
UPDATE someothertable SET somecolumn WHERE (SELECT textcolumn from sometable WHERE ....)
我想让它表现得像
UPDATE someothertable SET somecolumn WHERE 5>3
我如何在postgresql中做到这一点?
我正在寻找查询数据库中给定表中列列表的最快方法。我意识到Microsoft中存在INFORMATION_SCHEMA.columns视图。
然而,在PostgreSQL中,我记得使用INFORMATION_SCHEMA.columns从特定的表中获取列列表,并且通过实验--如果我还记得--我发现以下内容比使用信息模式更快:
SELECT *
FROM pg_catalog.pg_tables
WHERE schemaname != 'pg_catalog'
AND schemaname != 'information_schema
我已经通过User_id会话登录了。User_id在Profile表中。现在我需要获取它的类,这个类在另一个表中充当一个列。同样,有许多类,所以我想在我的数据库上使用if then else查询来从另一个表中获取值。SELECT class FROM profile...表示class是配置文件中user_id(给定)现在使用的第一个( class )列之一,它充当class_table中的列名,因此如果( first )选择first from class_table
select class from profile where user_id = session.getattribute
最近,我们从备份中恢复了PostgreSQL数据库,该备份是在没有停止数据库的情况下创建的(我知道这是非常错误的,现在我们正在付出代价)。备份是简单的数据库目录备份。现在我们注意到当我们执行
select *
from table
where COLUMN_1 is null
查询在我们的一个表中,查询只挂起(冻结),永远不会结束。同一表上的其他查询运行良好,distinct(COLUMN_1)返回所有值。同一查询在另一列COLUMN_2 is null上正确运行。那一列似乎出了什么问题。
我该如何修理这种可能损坏的桌子?
我想找一个用户最喜欢的音乐列表。第一步,我从用户的id表查询所有的favorite。在接下来的步骤中,我将通过id从songs表查询音乐列表。但是现在我想按照时间戳列favorite.added_at desc对行进行排序。
我不想加入表,所以我想知道是否可以在查询中按输入id进行排序。
例如:
-- the 3087 is first record
select *
from songs s
where id in (3087,5122)
-- the 5122 is first record
select *
from songs s
where id in (5122,3087)
我需要对表中的列运行最长的匹配前缀,而不仅仅是单个值。对于单个值,我使用类似于SELECT value, prefix as lmp FROM aTable WHERE SUBSTRING(value,1, LENGTH(prefix)) = prefix ORDER BY prefix DESC limit 1的内容。
问题是,如果对许多记录执行此操作,则需要执行表扫描并逐个获取值,并且需要在客户端和服务器之间进行大量通信。
有没有办法在一个查询中做到这一点,它将涉及子查询而不涉及存储过程?我使用的是PostgreSQL 8.4。