从表mysql计数模式

时间:2015-10-29 11:04:04

标签: mysql sql

我在Mysql表中有以下数据

ID   |  code | code order
   1 |  1 | 1
   1 |  2 | 2
   1 |  3 | 3
   2 |  1 | 1
   2 |  2 | 2
   2 |  3 | 3
   3 |  1 | 1
   3 |  4 | 2
   3 |  5 | 3
   4 |  1 | 1
   4 |  4 | 2
   4 |  5 | 3
   4 |  6 | 4

如何编写查询以返回以下结果

code pattern 1,2,3 = 2 (count)

code pattern 1,4,5 = 1 (count)

code pattern 1,4,5,6 = 1 (count)

基本上我需要找出最流行的代码序列,每个序列按唯一ID分组。代码的顺序也很重要。即

1,4,5,6与1,5,4,6

不同

欢呼声

1 个答案:

答案 0 :(得分:1)

在MySQL中,使用两个聚合可能最容易做到这一点:

public static String statistik(int[] fält) {
  String poäng[] = new String[fält.length];
  String output = "";

  //Clear out the array:
  for (int i = 0; i < poäng.length; i++) {
      poäng[i] = "";
  }

  //Add a star for each time a number appears
  for (int i = 0; i < fält.length; i++) {
    for (int t = 0; t < fält.length; t++) {
      if (fält[t] == i) {
        poäng[i] += "*";
      }
    }
  }

  //Print it out
  for (int i = 0; i < fält.length; i++) {
    output += i + ": " + poäng[i] + "\n";
  }
  System.out.println(output);
  return "";
}