想知道是否有人可以帮助一些Postgres.我有一个表有一个名为mydate
postgres日期类型的列.我想做的事情如下:
SELECT * FROM MyTable WHERE mydate > [Today-1year]
Run Code Online (Sandbox Code Playgroud)
我之前从未使用过Postgres,我确信我只需要知道一些函数的名称 - 我很乐意自己查阅引用.谁能指出我正确的方向?
谢谢!
好的,这是我的困境,我有一个数据库设置,大约5个表都具有完全相同的数据结构.以这种方式分离数据以用于本地化目的并且总共分割大约450万条记录.
大多数时候只需要一张桌子,一切都很好.但是,有时需要从2个或更多表中获取数据,并且需要按用户定义的列进行排序.这是我遇到问题的地方.
数据列:
id, band_name, song_name, album_name, genre
Run Code Online (Sandbox Code Playgroud)
MySQL声明:
SELECT * from us_music, de_music where `genre` = 'punk'
Run Code Online (Sandbox Code Playgroud)
MySQL吐出这个错误:
#1052 - Column 'genre' in where clause is ambiguous
Run Code Online (Sandbox Code Playgroud)
显然,我做错了.有人愿意为我阐明这一点吗?
所以我试图将一个主键添加到我的数据库中的一个表.现在它有一个这样的主键:
PRIMARY KEY (user_id, round_number)
Run Code Online (Sandbox Code Playgroud)
其中user_id是外键.
我想把它改成这个:
PRIMARY KEY (user_id, round_number, created_at)
Run Code Online (Sandbox Code Playgroud)
我在phpmyadmin中通过单击表结构视图中的主键图标来执行此操作.
这是我得到的错误:
#1025 - Error on rename of './database/#sql-2e0f_1254ba7' to './database/table' (errno: 150)
Run Code Online (Sandbox Code Playgroud)
它是一个带有InnoDB表引擎的MySQL数据库.
我正在使用MySQL工作台 - 运行查询时持续时间和获取时间之间有什么区别?
还有一种方法可以在MySQL中启用微秒选项吗?
我有两个看起来像这样的表
培养
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| TrainID | varchar(11) | NO | PRI | NULL | |
| Capacity | int(11) | NO | | 50 | |
+----------+-------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
预订
+---------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+----------------+
| ReservationID | int(11) | NO | PRI | NULL | auto_increment |
| FirstName | varchar(30) | NO | | NULL | …
Run Code Online (Sandbox Code Playgroud) 如果我有两个列,一个具有非常高的基数,另一个具有非常低的基数(唯一的值#),那么我按哪个顺序分组?
这是一个例子:
select
dimensionName,
dimensionCategory,
sum(someFact)
from SomeFact f
join SomeDim d on f.dimensionKey = d.dimensionKey
group by
d.dimensionName, -- large number of unique values
d.dimensionCategory -- small number of unique values
Run Code Online (Sandbox Code Playgroud)
是否有重要的情况?
以下查询不会更新datetime字段:
update table
SET EndDate = '2009-05-25'
WHERE Id = 1
Run Code Online (Sandbox Code Playgroud)
我也尝试过没有破折号,但这也不起作用.
我想编写一个SELECT语句,它只使用一个测试来返回没有值的列(null,empty或所有空格).
我认为这会奏效:
SELECT column_name from table_name WHERE column_name NOT LIKE '%_%';
Run Code Online (Sandbox Code Playgroud)
但这对NULL值不起作用.
我当然可以补充一下
OR column_name IS NULL
Run Code Online (Sandbox Code Playgroud)
它会起作用,但我想要一种使用单一测试的方法.
我花了一些时间来优化我们当前的数据库.
我正在特别关注索引.
有几个问题:
让我们假设下表(例如几个内连接语句的结果):
id | column_1 | column_2
------------------------
1 | 1 |
2 | 2 | 2
3 | | 3
Run Code Online (Sandbox Code Playgroud)
例如,您可以从以下语句中获取:
select a.id, t1.column_1, t2.column_2
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
Run Code Online (Sandbox Code Playgroud)
现在,如果我想总结t1.column_1和t2.column_2,如下所示
select
a.id,
t1.column_1,
t2.column_2,
(t1.column_1 + t2.column_2) as cumulated
from a
left join t1 on a.id = t1.id
left join t2 on a.id = t2.id
Run Code Online (Sandbox Code Playgroud)
reslut将如下所示:
id | column_1 | column_2 | cumulated
------------------------------------
1 | 1 | …
Run Code Online (Sandbox Code Playgroud) sql ×9
mysql ×6
sql-server ×2
casting ×1
group-by ×1
indexing ×1
innodb ×1
join ×1
oracle ×1
oracle10g ×1
phpmyadmin ×1
postgresql ×1
t-sql ×1
types ×1