下面给出了如何以我需要的方式在mysql中获得输出

下面给出了如何以我需要的方式在mysql中获得输出,mysql,sql,pivot,Mysql,Sql,Pivot,我有一个表,其中一列有三个值a、b和c。 表的当前快照为 表名:-tblTest 价值观 tblColumn a a a b b b b c c 我需要得到准确的输出 A B C 3 4 2 另一种技术是使用PreparedStatement,如果您有多个未知数字组的值,例如,a、b、c、d、e、f、g、h、 SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'SUM(IF(tblColumn = ''',

我有一个表,其中一列有三个值a、b和c。 表的当前快照为

表名:-tblTest

价值观

tblColumn
a
a
a
b
b
b
b
c
c
我需要得到准确的输出

A B C
3 4 2
另一种技术是使用
PreparedStatement
,如果您有多个未知数字组的值,例如,
a、b、c、d、e、f、g、h、

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'SUM(IF(tblColumn = ''',
      tblColumn,
      ''', 1, 0)) AS ',
      tblColumn 
    )
  ) INTO @sql
FROM
  Table1;
SET @sql = CONCAT('SELECT ', @sql, ' FROM Table1');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
试试这个

select tblColumn, Count(*) from tblTest group by tblColumn

注意,这些值是小写的。当比较“不区分大小写”时,结果将是相同的。但是当比较“区分大小写”时,你也必须使用小写值。@MihaiStancu是的,无论如何,我只是添加了prepared语句。结果集不会按要求进行结构。同意,RedFilter。。。我们可以不使用Distinct()改变。
select sum(tblColumn = 'a') as A,
    sum(tblColumn = 'b') as B,
    sum(tblColumn = 'b') as C
from tblTest
select tblColumn, Count(*) from tblTest group by tblColumn