3

クエリの結果の列の結果で繰り返されている値の数を取得したいと思います。

複雑なクエリから得られる結果セットは-

svn rvn eng     count(*)
1   1   Boy            1
2   1   Teacher        1
3   1   Chair          1
3   2   Chairwoman      1
3   3   Chairperson     1
4   1   Without         1
4   2   Without fail    1
5   1   Anyone          1
5   2   Anyone else     1
6   1   Permission      1

SVN4番目の列の列の重複する値の数を取得したいだけです。

すなわち

svn rvn eng     count(*)
1   1   Boy            1
2   1   Teacher        1

3   1   Chair          3
3   2   Chairwoman      3
3   3   Chairperson     3

4   1   Without         2
4   2   Without fail    2

5   1   Anyone          2
5   2   Anyone else     2
6   1   Permission      1

これについて私を助けてください、またこれがクエリの効率にどのような影響を与える可能性があるか教えてください??

*注-*結果セットで取得された値の数が必要です。svn表には、1、2、4、6のエントリがさらにあります。ただし、選択された数だけを数えます。

前もって感謝します :)

編集1

これが私の現在のクエリです:-

SELECT `svn` , `rvn` ,`eng` , count(*) FROM 
        (SELECT `svn`, `rvn`, `eng`, `hin` 
              FROM `table1` 
              WHERE `SN` = @sn
            UNION DISTINCT
            SELECT `table1_refer`.`sn_svn` AS 'svn',  
                           `table1`.`rvn`, `table1`.`eng` ,  
                          `vocab_rel`.`hin`
            FROM  `table1` 
            JOIN  `table1_refer` 
            WHERE  `table1_refer`.`rSN` =  `table1`.`SN` 
            AND  `table1_refer`.`svn` =  `table1`.`svn` 
            AND `table1_refer`.`SN` = @sn
        ) AS SUBQUERY
        GROUP BY `svn`,`rvn`
        ORDER BY `svn`, `rvn`
4

1 に答える 1

6

現在の複雑なクエリ内で相関サブクエリを使用して、次のように行うことができます。

SELECT
  svn, 
  rvn,
  eng,
  (SELECT count(t2.svn)
   FROM Tablename t2
   WHERE t2.svn = t1.svn
  ) AS Count
FROM Tablename t1
....

SQLフィドルデモ

これはあなたに与えるでしょう:

| SVN | RVN |         ENG | COUNT |
-----------------------------------
|   1 |   1 |         Boy |     1 |
|   2 |   1 |     Teacher |     1 |
|   3 |   1 |       Chair |     3 |
|   3 |   2 |  Chairwoman |     3 |
|   3 |   3 | Chairperson |     3 |
|   4 |   1 |     Without |     2 |
|   4 |   2 | Withoutfail |     2 |
|   5 |   1 |      Anyone |     2 |
|   5 |   2 |  Anyoneelse |     2 |
|   6 |   1 |  Permission |     1 |
于 2013-01-01T12:12:58.120 に答える