我正在Microsoft 2012中练习SQL (不是家庭作业问题),并且有一个表Names。该表按年份显示婴儿名称,列为Sex (名称的性别)、N (具有该名称的婴儿数)、Yr (年份)和Name (名称本身)。
我只需要使用一个SELECT语句编写一个查询,该语句按年返回最受欢迎的婴儿名称,包括性别、年份和命名婴儿的数量。到目前为止我已经有了;
SELECT *
From Names
ORDER By N DESC;
它给出了N在DESC顺序中的最高值,重复年份。我需要将它限制在每年的最高值,而我所做的每一件事都会导致错误。如果你能就此给我任何建议,我将不胜感激。
我想在过去的一个月中,在每个组中有多个值的10个组中显示最高值。
我已经在路上了
SELECT
Group, MAX(Value), Date
FROM
<relevant tables>
GROUP BY
Group, Date
但这会返回组中的所有内容,我需要每个组的最高值(例如,在0007行中只有'0007‘'1002415.59’'2016-11-11' )
0007 27456.14 2016-11-07
0082 2406.30 2016-11-07
0007 33038.34
我正在斯坦福大学的SQL课程中学习,并遇到了这样的问题:
对于每部电影,返回标题和“评分差”,即给出的最高和最低收视率之间的差异。按等级从最高到最低,然后按片名排序。
数据库结构和数据可以找到。
以下解决方案给出了正确的结果:
SELECT Movie.title, max(Rating.stars)-min(Rating.stars) as spread
FROM Movie, Rating
WHERE Movie.mID = Rating.mID
GROUP BY Rating.mID
ORDER BY spread DESC, Movie.title ASC
我搞不懂为什么会起作用。我
我试图在一个有组的BIRT报表中高亮显示(银色背景色)交替的行。尽管我已经实现了,但问题是每个组并不总是从突出显示的行开始。我想要重置每个组的突出显示行。
现在是这样的:
Department A
Highlight
not highlight
Highlight
Department B
not highlight
Highlight
我想要的是:
Department A
Highlight
not highlight
Highlight
Department B
Highlight
not highlight
有什么办法可以解决这个问题吗?
我
关于这个问题,我有一张相关的表格:
----------------------------------------
| award |
----------------------------------------
| id | name | URL | country_id | point |
----------------------------------------
1 | A | a | 1 | 120
2 | A | b | 0 | 60
3
我有一个针对mysql数据库的select查询,它列出了许多项的一系列值:
Bottle of single malt scotch, £15
Bottle of single malt scotch, £1.00
Box of Deans shortbread, £2
Box of Deans shortbread, £1.00
Days fishing, £10
Days fishing, £1.00
Fishing reel, £5
Fishing reel, £1.00
查询为:
SELECT field7,field11 FROM
我正在做SQL课程,我有下表:
只有当最新的时间戳和评级值都是每个player_store_id的最高值时,我才会过滤它的结果,所以在这种情况下,正如预期的结果,第3行和第4行应该被过滤。
我该怎么做呢?尝试了许多不同的选择,也搜索,但没有设法使它工作。
SELECT game_id, player_store_id, rating, timestamp
FROM #duplicated_reviews_date_and_rating
WHERE player_store_id IN (SELECT DISTINCT player_store_id FROM #duplicated_
所以我有以下几点:
SELECT name AS Author
FROM articles,
SELECT Author, count(Author)
from articles
group by Author;
我希望它有按名称分组的文章,别名为作者。但是,我得到以下错误:
错误代码: 1064。您的SQL语法有错误;请检查与您的MySQL服务器版本相对应的手册,以便在第3行使用接近“按名称限制从项目组中选择名称、计数(名称)”的正确语法。
我该如何修复语法呢?
关于使用Top的问题。例如,我们有以下SQL语句:
SELECT TOP (5) WITH TIES orderid, orderdate, custid, empid
FROM Sales.Orders
ORDER BY orderdate DESC;
它首先按顺序排序返回行,然后选择顶部最多的五行。但是,该ORDER子句不是在SELECT子句之后发生的吗?这意味着,首先将随机返回前五阶,然后按顺序排序这五行?
在我的一个遗留应用程序中,有一个查询来获取每个组的第一行,即,
SELECT
columnPrimaryKey,
column1,
column2,
column3,
column4
FROM
(SELECT
columnPrimaryKey,
column1,
column2,
column3,
column4
FROM tableName
ORDER BY column4
) AS tbl
GROUP BY column3
上面的查询不返回第一行(
我想知道是否有可能选择其他列不包含特定值的所有唯一行(通过按列名分组)。例:
users table
+-------+-----------+
| NAME | COUNTRY |
+-------+-----------+
| Bob | Australia |
+-------+-----------+
| Bob | America |
+-------+-----------+
| Steve | Australia |
+-------+-----------+
| Sam | Australia |
+-------+-----------+
| Sam
我正在执行此查询,并在Responsys中解释计划。
此查询的解释计划工作良好,并返回大约70行计数数据:
select * from ( Select LOCATION, count(LOCATION) COUNT_LOCATION From TABLE Group By LOCATION Order By COUNT_LOCATION Desc )
但是,在末尾添加限制行WHERE ROWNUM <= 10子句:
select * from ( Select LOCATION, count(LOCATION) COUNT_LOCATION From TABLE Group By LO
好人们,需要一点关于MySQL的帮助。在网上尝试了几个解决方案,但都能得到正确的结果。
我有一张简单的桌子。
name amount
john | 150
john | 100
john | 100
john | 150
jack | 300
jack | 100
jack | 100
基本上,我必须得到用户的总和为500在至少3行(按最高数量排序)。正确的答案应该只返回jack,因为只有他在3条记录中的总和为500 (按最高值排序)。如果john的总和为500,那么他的最高值中有3个只返回400(150+150+100),因此查询不会返回john。
SELECT
*,
我正在尝试构建一个查询,该查询显示聚合列"NumberOfArticles“中具有最高值的行。但是,由于有多个行具有相同的最高值,我不确定如何正确限制查询生成的行数。
SELECT WRT_ID, COUNT(ART_ID) AS NumberOfArticles
FROM Articles
GROUP BY WRT_ID
ORDER BY NumberOfArticles DESC
我正在为下列问题编写SQL语句
删除重复行
按列长度从10到15顺序选择行
它们需要是不特定于Server或Oracle的通用SQL语句。
有人能快点帮我吗?
到目前为止,我尝试了以下方法
假设表名为sample,列为id int和word varchar(50)
查询1:
delete from [sample] a
where a.rowid > any (select b.rowid
from [SAMPLE] b
where a.word = b.word)
查询2:
SELE