Index: src/wp-includes/class-wp-site-query.php
===================================================================
--- src/wp-includes/class-wp-site-query.php	(revision 40943)
+++ src/wp-includes/class-wp-site-query.php	(working copy)
@@ -250,8 +250,11 @@
 		 */
 		do_action_ref_array( 'pre_get_sites', array( &$this ) );
 
+		$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
+		unset( $_args['fields'] );
+
 		// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
-		$key = md5( serialize( wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) ) ) );
+		$key = md5( serialize( $_args ) );
 		$last_changed = wp_cache_get_last_changed( 'sites' );
 
 		$cache_key = "get_sites:$key:$last_changed";
Index: tests/phpunit/tests/multisite/siteQuery.php
===================================================================
--- tests/phpunit/tests/multisite/siteQuery.php	(revision 40943)
+++ tests/phpunit/tests/multisite/siteQuery.php	(working copy)
@@ -163,6 +163,83 @@
 		$this->assertEqualSets( $expected, $found );
 	}
 
+	/**
+	 * @ticket 41197
+	 */
+	public function test_wp_site_query_cache_with_count() {
+		global $wpdb;
+		$q = new WP_Site_Query();
+
+		$query_1 = $q->query( array(
+			'fields'     => 'ids',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+		) );
+
+		$number_of_queries = $wpdb->num_queries;
+
+		$query_2 = $q->query( array(
+			'fields'     => 'ids',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+			'count'      => true,
+		) );
+		$this->assertEquals( $number_of_queries + 1, $wpdb->num_queries );
+	}
+
+	/**
+	 * @ticket 41197
+	 */
+	public function test_wp_site_query_cache_with_both_count() {
+		global $wpdb;
+		$q                 = new WP_Site_Query();
+
+		$query_1 = $q->query( array(
+			'fields'     => 'ids',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+			'count'      => true,
+		) );
+		$number_of_queries = $wpdb->num_queries;
+
+		$query_2 = $q->query( array(
+			'fields'     => 'ids',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+			'count'      => true,
+		) );
+		$this->assertEquals( $number_of_queries, $wpdb->num_queries );
+	}
+
+	/**
+	 * @ticket 41197
+	 */
+	public function test_wp_site_query_cache_with_different_fields() {
+		global $wpdb;
+		$q                 = new WP_Site_Query();
+		$query_1           = $q->query( array(
+			'fields'     => 'all',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+		) );
+		$number_of_queries = $wpdb->num_queries;
+
+		$query_2 = $q->query( array(
+			'fields'     => 'ids',
+			'network_id' => self::$network_ids['wordpress.org/'],
+			'number'     => 3,
+			'order'      => 'ASC',
+		) );
+
+		$this->assertEquals( $number_of_queries, $wpdb->num_queries );
+
+	}
+
 	public function test_wp_site_query_by_network_id_with_order() {
 		$q = new WP_Site_Query();
 		$found = $q->query( array(
