2012-03-04 49 views
-2

我在選擇和排序或分組表格時出現問題。選擇順序並完成分組或訂購

我的表的內容是:

+----------+-------------+--------+-------+---------------------+-------+ 
| es_pausa | es_reinicio | es_fin | quien | cuando    | orden | 
+----------+-------------+--------+-------+---------------------+-------+ 
|  0 |   0 |  0 |  1 | 2012-03-04 17:16:17 |  1 | 
|  1 |   0 |  0 |  1 | 2012-03-04 17:17:12 |  2 | 
|  0 |   1 |  0 |  1 | 2012-03-04 17:17:37 |  3 | 
|  1 |   0 |  0 |  1 | 2012-03-04 17:17:56 |  4 | 
|  0 |   1 |  0 |  1 | 2012-03-04 17:22:41 |  5 | 
|  1 |   0 |  0 |  1 | 2012-03-04 17:22:54 |  6 | 
|  0 |   1 |  0 |  1 | 2012-03-04 17:23:00 |  7 | 
|  0 |   0 |  0 |  1 | 2012-03-04 17:40:06 |  1 | 
|  1 |   0 |  0 |  1 | 2012-03-04 17:40:12 |  2 | 
|  0 |   1 |  0 |  1 | 2012-03-04 18:02:20 |  3 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:02:25 |  4 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:13 |  1 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:09:17 |  2 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:21 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:24 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:27 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:31 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:36 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:40 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:44 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:48 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:51 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:09:56 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:10:00 |  1 | 
|  0 |   0 |  0 |  1 | 2012-03-04 18:10:04 |  1 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:08 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:15 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:18 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:22 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:25 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:28 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:32 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:35 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:38 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:42 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:47 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:10:51 |  2 | 
|  0 |   0 |  1 |  1 | 2012-03-04 18:22:43 |  8 | 
+----------+-------------+--------+-------+---------------------+-------+ 

我想GROUP BY列結果:騎士團。

當我使用的查詢,那麼選擇:

select es_reinicio, es_pausa, es_fin, cuando, quien from table_name group by orden; 

我得到以下結果:

+-------------+----------+--------+---------------------+-------+ 
| es_reinicio | es_pausa | es_fin | cuando    | quien | 
+-------------+----------+--------+---------------------+-------+ 
|   0 |  0 |  0 | 2012-03-04 17:16:17 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:17:12 |  1 | 
|   1 |  0 |  0 | 2012-03-04 17:17:37 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:17:56 |  1 | 
|   1 |  0 |  0 | 2012-03-04 17:22:41 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:22:54 |  1 | 
|   1 |  0 |  0 | 2012-03-04 17:23:00 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:22:43 |  1 | 
+-------------+----------+--------+---------------------+-------+ 
8 rows in set (0.02 sec) 

有(最後一個代碼塊中)不是明顯的MySQL服務器僅僅是按照以下順序排列:orden:1 2 3 4 5 6 7 但它沒有顯示其餘結果,我希望它是:1 2 3 4 5 6 7 1 2 1 2 1 2 .. 。


有我的結果,就像你說的查詢時(select es_reinicio, es_pausa, es_fin, cuando, quien, orden order by cuando):

+-------------+----------+--------+---------------------+-------+-------+ 
| es_reinicio | es_pausa | es_fin | cuando    | quien | orden | 
+-------------+----------+--------+---------------------+-------+-------+ 
|   0 |  0 |  0 | 2012-03-04 17:16:17 |  1 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:17:12 |  1 |  2 | 
|   1 |  0 |  0 | 2012-03-04 17:17:37 |  1 |  3 | 
|   0 |  1 |  0 | 2012-03-04 17:17:56 |  1 |  4 | 
|   1 |  0 |  0 | 2012-03-04 17:22:41 |  1 |  5 | 
|   0 |  1 |  0 | 2012-03-04 17:22:54 |  1 |  6 | 
|   1 |  0 |  0 | 2012-03-04 17:23:00 |  1 |  7 | 
|   0 |  0 |  0 | 2012-03-04 17:40:06 |  1 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:40:12 |  1 |  2 | 
|   1 |  0 |  0 | 2012-03-04 18:02:20 |  1 |  3 | 
|   0 |  0 |  1 | 2012-03-04 18:02:25 |  1 |  4 | 
|   0 |  0 |  0 | 2012-03-04 18:09:13 |  1 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:09:17 |  1 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:21 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:24 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:27 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:31 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:36 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:40 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:44 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:48 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:51 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:56 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:10:00 |  1 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:10:04 |  1 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:08 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:15 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:18 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:22 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:25 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:28 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:32 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:35 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:38 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:42 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:47 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:10:51 |  1 |  2 | 
|   0 |  0 |  1 | 2012-03-04 18:22:43 |  1 |  8 | 
+-------------+----------+--------+---------------------+-------+-------+ 
38 rows in set (0.00 sec) 

正如你可以看到,現場orden沒有以下順序:1 2 1 2 1 2序列1 2 3後4 5 6 7 1 2 3 4 1 2.但你讓我感到驚訝:D。

的我怎麼也想拿到表的一個例子下令將是:

+-------------+----------+--------+---------------------+-------+-----+-------+ 
| es_reinicio | es_pausa | es_fin | cuando    | quien | que | orden | 
+-------------+----------+--------+---------------------+-------+-----+-------+ 
|   0 |  0 |  0 | 2012-03-04 17:16:17 |  1 | 1 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:17:12 |  1 | 1 |  2 | 
|   1 |  0 |  0 | 2012-03-04 17:17:37 |  1 | 1 |  3 | 
|   0 |  1 |  0 | 2012-03-04 17:17:56 |  1 | 1 |  4 | 
|   1 |  0 |  0 | 2012-03-04 17:22:41 |  1 | 1 |  5 | 
|   0 |  1 |  0 | 2012-03-04 17:22:54 |  1 | 1 |  6 | 
|   1 |  0 |  0 | 2012-03-04 17:23:00 |  1 | 1 |  7 | 
|   0 |  0 |  1 | 2012-03-04 18:22:43 |  1 | 1 |  8 | 
|   0 |  0 |  0 | 2012-03-04 17:40:06 |  1 | 2 |  1 | 
|   0 |  1 |  0 | 2012-03-04 17:40:12 |  1 | 2 |  2 | 
|   1 |  0 |  0 | 2012-03-04 18:02:20 |  1 | 2 |  3 | 
|   0 |  0 |  1 | 2012-03-04 18:02:25 |  1 | 2 |  4 | 
|   0 |  0 |  0 | 2012-03-04 18:09:13 |  1 | 3 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:09:17 |  1 | 3 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:21 |  1 | 4 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:08 |  1 | 4 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:24 |  1 | 5 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:47 |  1 | 5 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:27 |  1 | 6 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:15 |  1 | 6 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:31 |  1 | 7 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:51 |  1 | 7 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:36 |  1 | 8 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:18 |  1 | 8 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:40 |  1 | 9 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:22 |  1 | 9 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:44 |  1 | 10 |  1 | 
|   0 |  0 |  0 | 2012-03-04 18:09:48 |  1 | 11 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:42 |  1 | 11 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:51 |  1 | 12 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:25 |  1 | 12 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:09:56 |  1 | 13 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:32 |  1 | 13 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:10:00 |  1 | 14 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:38 |  1 | 14 |  2 | 
|   0 |  0 |  0 | 2012-03-04 18:10:04 |  1 | 15 |  1 | 
|   0 |  0 |  1 | 2012-03-04 18:10:35 |  1 | 15 |  2 | 
+-------------+----------+--------+---------------------+-------+-----+-------+ 
38 rows in set (0.00 sec) 

我認爲這可能是不完整的查詢結果:

select es_reinicio, es_pausa, es_fin, cuando, quien, que, orden order by que 

,因爲這不是訂購例如:orden:1 2 3 4 5 6 7 8 1 2 1 2 1 2 1 2 ...(直到條目結束)。

希望這會有所幫助。

+0

如何查看分組結果?您必須使用像SUM或GROUP_CONCAT這樣的聚合函數來從不同行中獲取值。 – 2012-03-04 20:18:51

+0

我認爲你不理解分組的概念。請提供一個類似的表,其中包含您期望得到的結果 – 2012-03-04 20:20:40

回答

0

當您使用GROUP BY時,具有相同值的分組列的所有行將被縮減爲一行。我想你只是想用ORDER BY來代替。

嘗試使用ORDER BY que, orden。 MySQL將首先按que排序記錄,然後具有相同que值的記錄將按orden排序。

+0

是的,我想使用'ORDER BY',但MySql的算法按以下示例排序:1 1 1 2 2 2 2 3 3 3 ...我不想:1 2 3 4 5 6 7 1 2 1 2 1 2 ...這可能嗎?我認爲我必須做一個通用的'SELECT'並按照我自己的算法通過代碼進行排序。 – user1189104 2012-03-04 20:35:26

+0

您是否想要按兩列排序,首先是其他列,然後是orden?否則,你可能需要在代碼中寫入...但是訂購一列的方式相當奇怪,請記住結果可能無法預測。 – 2012-03-05 00:04:09

+0

是的,我想按列排序:'que',之後我想通過'orden'進行順序的非排他性分組。我認爲這不是由MySQL支持,所以我寫入代碼。完成後我會在c#中發佈代碼,因爲它可以幫助某人。 – user1189104 2012-03-05 09:47:48

0

您正在查找不同列的順序。它不是orden它是cuando :)

select es_reinicio, es_pausa, es_fin, cuando, quien from table_name 
order by cuando 
+0

請閱讀下一篇文章。 – user1189104 2012-03-05 09:51:12

+0

select * from trabajando order by que,id; – user1189104 2012-03-05 11:45:56