Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

30
用MySQL计算中位数的简单方法
用MySQL计算中位数的最简单方法(希望不是太慢)是什么?我过去一直AVG(x)在寻找均值,但是我很难找到一种简单的方法来计算中位数。现在,我将所有行返回给PHP,进行排序,然后选择中间行,但是肯定必须有一个简单的方法可以在单个MySQL查询中完成。 示例数据: id | val -------- 1 4 2 7 3 2 4 2 5 9 6 8 7 3 排序val给出2 2 3 4 7 8 9,因此中位数应为4,而SELECT AVG(val)其中== 5。
207 sql  mysql  statistics  median 


22
SQL select连接:是否可以将所有列都前缀为'prefix。*'?
我想知道在SQL中是否可行。假设您有两个表A和B,并且对表A进行选择,然后对表B进行联接: SELECT a.*, b.* FROM TABLE_A a JOIN TABLE_B b USING (some_id); 如果表A具有列'a_id','name'和'some_id',表B具有'b_id','name'和'some_id',则查询将返回列'a_id','name','some_id ','b_id','名称','some_id'。有什么方法可以在不单独列出每一列的情况下为表B的列名加上前缀?等效于: SELECT a.*, b.b_id as 'b.b_id', b.name as 'b.name', b.some_id as 'b.some_id' FROM TABLE_A a JOIN TABLE_B b USING (some_id); 但是,如上所述,没有列出每一列,所以类似: SELECT a.*, b.* as 'b.*' FROM TABLE_A a JOIN TABLE_B b USING (some_id); 基本上可以这样说:“在b。*返回的每一列前面加上'something'”。这可能吗?还是我不走运? 在此先感谢您的帮助! 编辑:关于不使用SELECT …
206 sql  join 


4
向数据库上的用户授予所有权限
我想给用户一个数据库的所有权限,而无需使其成为管理员。之所以要这样做,是因为目前DEV和PROD是同一集群上的不同DB,所以我不希望用户能够更改生产对象,但用户必须能够更改DEV上的对象。 我试过了: grant ALL on database MY_DB to group MY_GROUP; 但似乎没有任何许可。 然后我尝试了: grant all privileges on schema MY_SCHEMA to group MY_GROUP; 而且似乎授予了我创建对象的权限,但不允许我在该模式上查询\删除属于其他用户的对象 我可以继续向MY_SCHEMA上的用户授予USAGE权限,但随后它会抱怨没有对该表的权限... 所以我想我的问题是:是否有任何简单的方法可以将所有权限授予数据库上的用户? 我正在使用PostgreSQL 8.1.23。



11
在SQL中,count(column)和count(*)有什么区别?
我有以下查询: select column_name, count(column_name) from table group by column_name having count(column_name) > 1; 会有什么区别,如果我更换,所有呼叫count(column_name)到count(*)? 这个问题的灵感源于我如何在Oracle的表中找到重复的值?。 为了澄清接受的答案(也许我的问题),替换count(column_name)与count(*)将在包含一个结果返回额外的行null和计数null列中的值。
205 sql 


14
SQL:WHERE子句中的IF子句
是否可以在MS SQL 的WHERE子句中使用IF子句? 例: WHERE IF IsNumeric(@OrderNumber) = 1 OrderNumber = @OrderNumber ELSE OrderNumber LIKE '%' + @OrderNumber + '%'
203 sql  sql-server  tsql 

2
优化PostgreSQL以进行快速测试
我从典型的Rails应用程序从SQLite切换到PostgreSQL。 问题在于PG的运行规范变得缓慢。 在SQLite上花了〜34秒,在PG上花了〜76秒,比原来慢2倍以上。 因此,现在我想应用一些技术来使规范的性能与SQLite保持一致,而无需修改代码(理想情况下仅通过设置连接选项,这可能是不可能的)。 从我的脑海中显而易见的几件事是: RAM磁盘(在OSX上使用RSpec进行良好的设置很不错) 未记录的表(可以将其应用于整个数据库,这样我就不必更改所有脚本了吗?) 正如您可能已经了解的那样,我不在乎可靠性和其他方面(这里DB只是一堆东西而已)。 我需要充分利用PG,并使其尽可能快。 最佳答案将理想地描述这样做的技巧,设置以及这些技巧的缺点。 更新: fsync = off + full_page_writes = off仅将时间减少到〜65秒(〜-16秒)。良好的开端,但离34的目标还很远。 更新2:我尝试使用RAM磁盘,但性能提升在误差范围内。因此似乎不值得。 更新3:* 我发现了最大的瓶颈,现在我的规格与SQLite一样快。 问题是进行了截断的数据库清理。显然,SQLite的速度太快了。 为了“修复”它,我在每次测试之前都打开一个事务,并在最后将其回滚。 约700个测试的一些数字。 截断:SQLite-34s,PG-76s。 交易:SQLite-17s,PG-18s。 SQLite的速度提高了2倍。PG的速度提高了4倍。

7
SQL Server动态PIVOT查询?
我的任务是提出一种翻译以下数据的方法: date category amount 1/1/2012 ABC 1000.00 2/1/2012 DEF 500.00 2/1/2012 GHI 800.00 2/10/2012 DEF 700.00 3/1/2012 ABC 1100.00 分为以下内容: date ABC DEF GHI 1/1/2012 1000.00 2/1/2012 500.00 2/1/2012 800.00 2/10/2012 700.00 3/1/2012 1100.00 空白点可以是NULL或空白,可以,并且类别必须是动态的。对此的另一个可能的警告是,我们将以有限的容量运行查询,这意味着临时表已用完。我尝试研究并着陆PIVOT,但尽管我已尽力找出但在我真正不了解之前从未使用过它。谁能指出我正确的方向?
202 sql  sql-server  tsql  pivot 

7
SQL-在哪里拥有VS
我有以下两个表: 1. Lecturers (LectID, Fname, Lname, degree). 2. Lecturers_Specialization (LectID, Expertise). 我想找到最专业的讲师。当我尝试此操作时,它不起作用: SELECT L.LectID, Fname, Lname FROM Lecturers L, Lecturers_Specialization S WHERE L.LectID = S.LectID AND COUNT(S.Expertise) >= ALL (SELECT COUNT(Expertise) FROM Lecturers_Specialization GROUP BY LectID); 但是当我尝试这样做时,它会起作用: SELECT L.LectID, Fname, Lname FROM Lecturers L, Lecturers_Specialization S WHERE L.LectID = S.LectID …
202 sql  where  having 

3
MYSQL更新语句内部联接表
我不知道是什么问题。使用MySQL 5.0尝试运行以下MYSQL更新语句时出现编译错误 UPDATE b SET b.mapx = g.latitude, b.mapy = g.longitude FROM business AS b INNER JOIN business_geocode g ON b.business_id = g.business_id WHERE (b.mapx = '' or b.mapx = 0) and g.latitude > 0 所有字段名称都是正确的。有什么想法吗?
201 mysql  sql 

8
如何在SQL中用联合排序?
当数据来自多个select并将其合并在一起时,是否可以订购?如 Select id,name,age From Student Where age < 15 Union Select id,name,age From Student Where Name like "%a%" 如何按名称排序此查询。 有人说你可以这样查询。 Select id,name,age From Student Where age < 15 or name like "%a%" Order by name 但是在这种情况下,我只是忽略了该解决方案。
201 sql  sql-order-by  union 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.