0

これが私のテーブルです。

mysql> desc products;
+--------------------+-------------+------+-----+--------------------------------------+-------+
| Field              | Type        | Null | Key | Default                              | Extra |
+--------------------+-------------+------+-----+--------------------------------------+-------+
| productCode        | varchar(15) | NO   | PRI | NULL                                 |       |
| productName        | varchar(70) | NO   |     | NULL                                 |       |
| productUrl         | varchar(50) | YES  |     | NULL                                 |       |
| productLine        | varchar(50) | NO   |     | NULL                                 |       |
| productScale       | varchar(10) | NO   |     | NULL                                 |       |
| productVendor      | varchar(50) | NO   |     | NULL                                 |       |
| productDescription | text        | NO   |     | NULL                                 |       |
| quantityInStock    | smallint(6) | NO   |     | NULL                                 |       |
| buyPrice           | double      | NO   |     | NULL                                 |       |
| MSRP               | double      | NO   |     | NULL                                 |       |
| Image              | varchar(50) | YES  |     | phpGridx/SampleImages/motorcycle.jpg |       |
+--------------------+-------------+------+-----+--------------------------------------+-------+

以下のクエリを試したとき..?

mysql> select productVendor,count(productCode) from products order by productCode;
+-----------------+--------------------+
| productVendor   | count(productCode) |
+-----------------+--------------------+
| Min Lin Diecast |                110 |
+-----------------+--------------------+

「MinLinDiecast」と表示される理由。私のテーブルには他に約11のproductVendorsがあります。なぜそれがかかったのか、総行数は110で大丈夫ですが、なぜそのベンダーが特に表示されたのかわかりません。(それは最初のレコードでもありません)。

どんな体でも私に理由を説明できますか。

4

3 に答える 3

3

GROUP BYレコードが1つしか返らないようにする句がないためです。

select productVendor,count(productCode) 
from products 
GROUP BY productVendor
order by productCode

ONLY_FULL_GROUP_BYmysql で有効にすると、クエリは実行されません。

于 2012-12-28T05:35:03.777 に答える
2

これを試して:

SELECT productVendor,count(productCode) 
FROM products 
GROUP BY productVendor
ORDER BY productCode;
于 2012-12-28T05:35:40.323 に答える
0

クエリにGROUPBY句を追加しておらず、SELECTステートメントにproductVendorとproductCodeの2つの列があるので、productCodeの数だけを知りたい場合は、productVendor列を選択する理由を質問します。これは、常にproductVendorの値がその列の最初の値。

したがって、すべてのproductCode、productVendorのカウントが必要な場合は、このGROUPBY句を使用する必要があります

     SELECT productVendor,count(productCode) 
     FROM   products 
     GROUP BY productVendor
     ORDER BY productCode
于 2012-12-28T06:02:06.217 に答える