现在我知道这个问题之前已经被问过好几次了,但是我已经尝试将不同的现有解决方案应用于我的具体问题很长一段时间了,但没有成功。所以我转向这里希望得到一些指导。
我有一个名为 tblanswers 的表,其中包含链接到另一个表中不同问题的答案。我想要的是获取特定问题 ID 的每个答案的计数,但将其限制为每月的第 n 个答案。
来自 tblanswers 的示例数据:
id qid answer timestamp
72 162 2 1366027324
71 161 4 1343599200
70 162 2 1366014201
69 161 4 1366011700
68 162 2 1366006729
67 161 3 1366010948
66 162 2 1365951084
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的查询:
SELECT *, COUNT(*) c FROM(
SELECT answer, timestamp, YEAR(FROM_UNIXTIME(timestamp)) yr, MONTH(FROM_UNIXTIME(timestamp)) mo FROM tblanswers
WHERE qid = 161
ORDER BY timestamp ASC
) q GROUP BY YEAR(FROM_UNIXTIME(timestamp)), MONTH(FROM_UNIXTIME(timestamp)), answer
Run Code Online (Sandbox Code Playgroud)
这会给我这样的结果:(样本数据中的日期和数字不准确)
answer yr mo c
1 …Run Code Online (Sandbox Code Playgroud) 我有以下表格:
类别
id(int)
1000
1001
Run Code Online (Sandbox Code Playgroud)
书
id(int) category(int) rating(float)
3000 1000 5.0
3001 1000 4.8
3002 1000 3.0
3003 1000 4.9
3004 1001 4.9
3005 1001 3.0
Run Code Online (Sandbox Code Playgroud)
我想要做的是从每个类别中选出 3 本评价最高的书。在环顾四周并按照LIMITing an SQL JOIN给出的答案之后,我尝试了这个查询。
SELECT * FROM book, category WHERE book.category=category.id AND book.id IN (SELECT book.id FROM book ORDER BY rating LIMIT 3)
Run Code Online (Sandbox Code Playgroud)
但它给出了以下错误
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'
Run Code Online (Sandbox Code Playgroud)
解决方案说至少需要MySQL 5.1,我正在运行libmysql - 5.1.73。可能有什么问题?
我使用sql从日期分组的表中检索最后20行.我想限制它,以便在每个post_day组中只选择前10行投票DESC.
SELECT *, DATE(timestamp) as post_day
FROM stories
ORDER BY post_day DESC, votes DESC
LIMIT 0, 20
Run Code Online (Sandbox Code Playgroud)
这就是表格的样子:
STORYID TIMESTAMP VOTES
1 2015-03-10 1
2 2015-03-10 2
3 2015-03-9 5
4 2015-03-9 3
Run Code Online (Sandbox Code Playgroud) 波纹管是一个示例表。
ID FROM TO DATE
1 Number1 Number2 somedate
2 Number2 Number1 somedate
3 Number2 Number1 somedate
4 Number3 Number1 somedate
5 Number3 Number2 somedate
Run Code Online (Sandbox Code Playgroud)
预期结果是为每对唯一的 TO 和 FROM 列获得 1 行
如果按 ID ASC 排序,则示例结果
(1,Number1,Number2)
(4,Number3,Number1)
(5,Number3,Number2)
Run Code Online (Sandbox Code Playgroud)
好的,我找到了如何使用以下查询执行此操作
SELECT * FROM table GROUP BY LEAST(to,from), GREATEST(to,from)
Run Code Online (Sandbox Code Playgroud)
但是,我无法获得每个唯一对的最新记录。
我试过,order by ID desc但它返回唯一对的第一个找到的行。
我有这样一张桌子:
Date | Expedition Name | Invoice
___________________________________________
4/6/12 | Starsindo | X001908
4/6/12 | Starsindo | X001900
4/6/12 | De Ros indah | X002008
4/6/12 | De Ros indah | X002108
4/6/12 | De Ros indah | X002208
4/6/12 | Starsindo | X002308
4/6/12 | Starsindo | X002408
4/6/12 | Starsindo | X002508
4/6/12 | Japex | X002608
Run Code Online (Sandbox Code Playgroud)
如何使用mysql进行查询以显示最常出现在同一日期的三次探险的名称?
我刚刚创建了这个查询,但仍然困惑:
Select * From tb_exp_expor Order By nama_exp_expor DESC
Run Code Online (Sandbox Code Playgroud) 我搜索了很多关于此的不同帖子,但没有找到适合我的东西。
这在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?和http://www.sqlines.com/mysql/how-to/get_top_n_each_group对我不起作用。
我有一个简单的 MySQL 表,其中包含以下列
id , package, user_id, date
Run Code Online (Sandbox Code Playgroud)
我想执行一个查询,我将得到
X 行 / user_id WHERE 日期 > 编号 按日期 ASC 排序
简而言之,我们想要执行Group By user_idwithLIMIT of X rows / group但要记住使用 the 的语句date column
全表示例:
id , package, user_id, date
1, full, 1 , 1447003159
2, full, 1 , 1447003055
3, full, 1 , 1447002022
4, full, 1 , 1447001013
5, full, 1 , …Run Code Online (Sandbox Code Playgroud) 我有一个如下表(此处为示例):
CREATE TABLE topics (
name varchar(64),
url varchar(253),
statistic integer,
pubdate timestamp
);
INSERT INTO topics VALUES
('a', 'b', 100, TIMESTAMP '2011-05-16 15:36:38'),
('a', 'c', 110, TIMESTAMP '2014-04-01 00:00:00'),
('a', 'd', 120, TIMESTAMP '2014-04-01 00:00:00'),
('a', 'e', 90, TIMESTAMP '2011-05-16 15:36:38'),
('a', 'f', 80, TIMESTAMP '2014-04-01 00:00:00'),
('a', 'g', 70, TIMESTAMP '2011-05-16 15:36:38'),
('a', 'h', 150, TIMESTAMP '2014-04-01 00:00:00'),
('a', 'i', 50, TIMESTAMP '2011-05-16 15:36:38'),
('b', 'j', 10, TIMESTAMP '2014-04-01 00:00:00'),
('b', 'k', 11, TIMESTAMP '2011-05-16 15:36:38'), …Run Code Online (Sandbox Code Playgroud) 今天我的SQl问题是如何根据用户配额限制一些查询结果.
这是用例:
用户
+-----+------------+
| id | scan_quota |
+-----+------------+
| 1 | 0 |
| 2 | 10 |
| 3 | 20 |
+-----+------------+
Run Code Online (Sandbox Code Playgroud)
网站
+-----+---------+------------------------------------------------+
| id | user_id | url |
+-----+---------+------------------------------------------------+
| 1 | 1 | http://www.site1.com |
| 2 | 2 | http://www.site2.com |
| 3 | 3 | http://www.site3.com |
+-----+---------+------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
网页
+-------+------------+--------------------------------------+---------------------+
| id | website_id | url | last_scan_date |
+-------+------------+--------------------------------------+---------------------+
| 1 | 1 …Run Code Online (Sandbox Code Playgroud) **Department table name** **following with fields name** id , empid ,salary ,departid ,status
如何在mysql中使用单个查询从每个部门获得前两个最高工资