相关疑难解决方法(0)

限制分组中的每个组

现在我知道这个问题之前已经被问过好几次了,但是我已经尝试将不同的现有解决方案应用于我的具体问题很长一段时间了,但没有成功。所以我转向这里希望得到一些指导。

我有一个名为 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)

mysql group-by greatest-n-per-group limit-per-group

5
推荐指数
1
解决办法
1179
查看次数

将 LIMIT 应用于 SQL INNER JOIN 查询

我有以下表格:

类别

    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。可能有什么问题?

mysql

5
推荐指数
1
解决办法
4334
查看次数

获得每组前n个结果

我使用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)

mysql sql

5
推荐指数
1
解决办法
817
查看次数

SQL如何按两列分组

波纹管是一个示例表。

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但它返回唯一对的第一个找到的行。

mysql sql

3
推荐指数
1
解决办法
2092
查看次数

我应该使用什么查询来解决这些问题?

我有这样一张桌子:

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)

mysql sql

2
推荐指数
1
解决办法
94
查看次数

MySQL 限制行/分组依据

我搜索了很多关于此的不同帖子,但没有找到适合我的东西。

在 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)

mysql

2
推荐指数
1
解决办法
4478
查看次数

每组限制 - Google BigQuery/标准 SQL

我有一个如下表(此处为示例):

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 greatest-n-per-group google-bigquery

2
推荐指数
1
解决办法
3211
查看次数

如何根据用户配额限制MySQL结果

今天我的SQl问题是如何根据用户配额限制一些查询结果.

这是用例:

  • 用户拥有1 ... N个网站,其中包含1 ... N个网页
  • 用户有一个scan_quota,允许他(或不)访问他的网页

用户

+-----+------------+
| 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)

mysql limit

1
推荐指数
1
解决办法
437
查看次数

mysql查询从每个部门获得前两个薪水

**Department table name** 
**following with fields name**

 id , empid ,salary ,departid ,status

如何在mysql中使用单个查询从每个部门获得前两个最高工资

mysql

0
推荐指数
2
解决办法
4730
查看次数