mysql - 根据列和不同列的值选择行
问题描述
我想根据商店的数量选择具有不同商店位置的行,示例如下所示:
id | item_name | number_of_store| store_location|
+----+---------+-------------------+-------------+
| 3 | margarine | 2 | QLD |
| 4 | margarine | 2 | NSW |
| 5 | wine | 3 | QLD |
| 6 | wine | 3 | NSW |
| 7 | wine | 3 | NSW |
| 8 | laptop | 1 | QLD |
+----+---------+-------------------+-------------+
所需的结果如下所示:
id | item_name | number_of_store| store_location|
+----+---------+-------------------+-------------+
| 3 | margarine | 2 | QLD |
| 4 | margarine | 2 | NSW |
| 5 | wine | 3 | QLD |
| 6 | wine | 3 | NSW |
| 8 | laptop | 1 | QLD |
+----+---------+-------------------+-------------+
我不在乎返回哪个 id 列值。所需的 SQL 是什么?
解决方案
你可以使用GROUP BY
:
SELECT id, item_name ,number_of_store, store_location
FROM tab
GROUP BY item_name ,number_of_store, store_location;
-- will work if ONLY_FULL_GROUP_BY is disabled
否则,您需要ANY_VALUE
或聚合函数,例如MIN
:
SELECT ANY_VALUE(id) AS id, item_name ,number_of_store, store_location
FROM tab
GROUP BY item_name ,number_of_store, store_location;
推荐阅读
- go - 在confluent kafka go中阅读来自kafka主题的消息时如何使用确认?
- material-ui - 如何为包含 xs={12} 布局全宽的材质 ui 网格项编写 xs、sm、md、lg?
- regex - 正则表达式匹配单词和特殊字符之间的字符串
- list - 创建二维列表,然后在 Scala 中创建一个 DataFrame
- netsuite - 解密凭据时出错 (NetSuite)
- javascript - 如何通过 CSS 使用垂直居中的锚点为文本设置动画
- amazon-web-services - AWS RDS 定价
- azure-devops - CI/CD 管道 Azure Devops - 删除了文件夹权限
- java - android studio 和 Java 服务器之间的通信。问题 GRPC
- javascript - 从构造函数调用 JS 原型函数(ES6 模块)