【问题标题】:How to express limit operator in relational algebra or extended relational algebra如何在关系代数或扩展关系代数中表示极限算子
【发布时间】:2016-02-18 02:17:23
【问题描述】:

我有一个 SQL 查询如下:

select uname, city from USER
where uid = 
(
select bidder from BID
group by bidder
order by count(*) desc limit 1);

SQL 查询是查找出价最多的用户的用户名和城市。但是我不知道如何在关系/扩展关系代数中表达极限运算符。

谢谢!

【问题讨论】:

  • 您使用的是什么 DBMS?
  • 关系代数中通常没有限制。但是这个查询不需要它。但是有很多“关系代数”,所以请提供一个你应该使用的参考。
  • 如果您在按列降序排序后限制 1,那么您要求列中的最大值。具有最大值的行可以使用基本运算符表示 - 不需要排序或限制。 greatest-n-per-group 但是 COUNT per GROUP 需要基本之外的聚合运算符。

标签: sql relational-algebra


【解决方案1】:

我查看了 Navathe 的书,在关系代数中找不到任何极限运算符。这让我觉得经典关系代数中没有极限算子。经过研究,Alexander Serebrenik 在“relational algebra for Limit Operator”问题中确认!

【讨论】:

  • @Vicky,它对你有帮助吗?如果是这样,请接受作为答案,让人们知道它对您有帮助......或没有:)
猜你喜欢
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多